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