【发布时间】:2016-02-15 17:15:24
【问题描述】:
我在使用 sphinx 时遇到了奇怪的问题,应该对表格中的单个列进行全文搜索。它返回一些值的结果,但对于一些它不返回任何值。
据我所知,我在 Postgres(这是源代码)中有单词“Belgrade”,而在 sphinx 中查询“Belg”不会给我任何结果。但如果我查询“贝尔格莱德”,它将返回结果。
它也会返回以搜索词结尾的词,但如果搜索词在词的中间则不会。
这是我的 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();
【问题讨论】:
标签: postgresql laravel full-text-search sphinx