Sphinx 全文搜索未按预期工作
Sphinx full text search not working as expected
我遇到了 sphinx 的奇怪问题,它应该在 table 中的单个列上进行全文搜索。它 return 对某些值有结果,但对某些值它没有 return 任何结果。
据我所知,我在 Postgres(这是源代码)中有单词 "Belgrade",并且在 sphinx 中查询 "Belg" 不会给我任何结果。但是如果我查询 "Belgrade" 它将得到 return 结果。
它还会 return 以搜索词结尾的词,但如果搜索词位于词的中间则不会。
这是我的 sphinx conf:
source src_cities
{
type = pgsql
sql_host = ####
sql_user = ####
sql_pass = ####
sql_db = ####
sql_port = 5432
sql_query_pre = SET CLIENT_ENCODING TO 'UTF8';
sql_query_pre = SET NAMES 'UTF8';
sql_query = \
SELECT id,name \
FROM cities
sql_field_string = name
sql_query_info = SELECT * FROM cities WHERE id=$id
}
index cities
{
source = src_cities
path = /var/lib/sphinxsearch/data/cities
docinfo = extern
charset_type = sbcs
min_word_len = 1
}
下面是我尝试从 Laravel 获取数据的方式:
$results = $sphinx->search($name, 'cities')
->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_EXTENDED)
->query();
此线程相关:
http://sphinxsearch.com/forum/view.html?id=3795
# min-prefix lenght. optional. default is 0 (do not index prefixes)
#
min_prefix_len = 3
我遇到了 sphinx 的奇怪问题,它应该在 table 中的单个列上进行全文搜索。它 return 对某些值有结果,但对某些值它没有 return 任何结果。
据我所知,我在 Postgres(这是源代码)中有单词 "Belgrade",并且在 sphinx 中查询 "Belg" 不会给我任何结果。但是如果我查询 "Belgrade" 它将得到 return 结果。
它还会 return 以搜索词结尾的词,但如果搜索词位于词的中间则不会。
这是我的 sphinx conf:
source src_cities
{
type = pgsql
sql_host = ####
sql_user = ####
sql_pass = ####
sql_db = ####
sql_port = 5432
sql_query_pre = SET CLIENT_ENCODING TO 'UTF8';
sql_query_pre = SET NAMES 'UTF8';
sql_query = \
SELECT id,name \
FROM cities
sql_field_string = name
sql_query_info = SELECT * FROM cities WHERE id=$id
}
index cities
{
source = src_cities
path = /var/lib/sphinxsearch/data/cities
docinfo = extern
charset_type = sbcs
min_word_len = 1
}
下面是我尝试从 Laravel 获取数据的方式:
$results = $sphinx->search($name, 'cities')
->setMatchMode(\Sphinx\SphinxClient::SPH_MATCH_EXTENDED)
->query();
此线程相关:
http://sphinxsearch.com/forum/view.html?id=3795
# min-prefix lenght. optional. default is 0 (do not index prefixes)
#
min_prefix_len = 3