其实我的问题似乎很基本。
mysql
数据库,这是在我的服务器localhost上。sphinxapi
与 php
一起使用。正如我想的那样,我必须告诉狮身人面像
好吧,我不知道应该更改哪个文件。
我在sphinx文件夹中找到了一个名为 configure 的文件,我尝试了这个,然后我更改了 sphinx.conf.in 但我仍然无法使用 sphinx
。
如果您帮我配置 sphinx
基本设置,那就太棒了。
我研究了问题,但没有像这样的基本问题。
提前致谢。
答案 0 :(得分:4)
我已经看过几次初学者的混乱,所以我想我会给出更详细的快速入门。所以,开始使用Sphinx搜索的基本介绍:
通常,sphinx项目文件存储在三个目录下:project/sphinx/etc
,project/sphinx/logs
和project/sphinx/data
。这些可以根据需要进行修改,但我遵循以下惯例。
在系统上安装Sphinx后,您将拥有两个可执行文件:indexer
和searchd
。 indexer
是检查配置文件并为您指定的数据编制索引以便快速访问的程序。 searchd
是您通常希望继续运行的后台进程(或守护程序)。将此视为Sphinx搜索引擎的动作。来自sphinxapi
的所有查询都将路由到searchd
,indexer -c /path/to/project/sphinx/etc/sphinx.conf --all
将对索引数据执行搜索,并按照您指定的顺序返回记录的ID。运行这两个可执行文件的例子(在linux中,虽然在Windows上它应该不会太大),如下所示:
searchd -c /path/to/project/sphinx/etc/sphinx.conf --rotate
这会索引配置文件中指定的所有源。有更多选项可用于仅索引指定的源。 Detailed listing of options here
searchd
这会初始化rotate
守护程序并将其分支到后台,它将继续运行直到您将其终止。 --stop
选项允许您在将来更新索引时保持守护程序运行。您可以使用source
开关来停止守护程序。 Detailed listing of options here
这将我们带到配置文件。配置文件由index
和searchd
配置的集合以及用于配置sphinx本身的sphinx.conf
部分组成。这里有很多选项要配置,但基本的MySQL
(通常是在sphinx安装文件夹中找到的sphinx.conf.dist文件)文件有点压倒性的。我只是提到了一些开始使用所需的基本配置选项。我假设您使用searchd {
/* Define your file paths. */
log = /path/to/project/sphinx/logs/searchd.log
query_log = /path/to/project/sphinx/logs/query.log
pid_file = /path/to/project/sphinx/logs/searchd.pid
/* Listen on port 9312 (This is the default port) */
listen = localhost:9312
}
,但这应该很容易适应任何数据提供者。
.pid
这是基本的搜索配置,指定了写日志的位置以及要锁定的9312
文件。搜索守护程序侦听端口sphinxapi
,默认情况下source text_search{
/* Data provider details */
type = mysql
sql_host = localhost
sql_user = sql_user_name
sql_pass = sql_pass_word
sql_db = my_db_name
/* The query used to index the data. A very basic example... */
sql_query = SELECT id, text_field, status FROM text_search
sql_attr_uint = status
}
转发它的查询。
indexer
这是数据来源。在这里,id
将运行提供的查询并为结果编制索引。 status
被视为关键,因为它是一个整数字段,没有明确提到它是什么(与text_field
字段不同)。由于status
是一个文本字段(duh!),因此sphinx会对隐式全文搜索进行索引。我们还指定index text_search_index{
/* The data source that we have defined above. */
source = text_search
/* The path to store the index data/cache */
path = /path/to/project/data/text_search
/* Use stemming while searching */
morphology = stem_en
}
是一个整数字段,以后我们可以在执行搜索时过滤结果。
searchd
这定义了searchd
将用于搜索的索引的详细信息。提供数据来源。有许多选项可根据您的需求定制结果。我只提供了一个示例,我们指定{{1}}必须使用词干算法来匹配查询。可以通过以下方式收集所有可用选项的详细信息:
这绝不是详细的,但我希望这会让你开始......
答案 1 :(得分:1)
如果您已经安装了sphinx,请运行
indexer
(没有参数)
...它应该告诉你在哪里寻找配置文件。
将 sphinx.conf.dist 复制到该位置的sphinx.conf
。 (不是.in文件)然后根据需要进行编辑。