【问题标题】:Sphinx full text search not working as expectedSphinx 全文搜索未按预期工作
【发布时间】: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


    【解决方案1】:

    这个帖子是相关的:

    http://sphinxsearch.com/forum/view.html?id=3795

      # min-prefix lenght. optional. default is 0 (do not index prefixes)
      #
      min_prefix_len = 3
    

    【讨论】:

    • 设置 min_infix_len 解决了这个问题,谢谢。您是否知道我可以像这样搜索结果,但包含另一个用于排序的数字列?
    猜你喜欢
    • 2017-12-18
    • 2021-01-12
    • 2017-05-12
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2021-07-27
    相关资源
    最近更新 更多