【问题标题】:Set match mode on SphinxQl in sphinxsearch在 sphinxsearch 中设置 SphinxQl 的匹配模式
【发布时间】:2015-11-07 14:17:56
【问题描述】:

我使用 SphinxQl,我得到这样的查询

SELECT `id`, WEIGHT() as relevance FROM `rt_table` WHERE MATCH('dubai')

我想将匹配模式设置为扩展以通过 *(通配符)进行搜索

SELECT `id`, WEIGHT() as relevance FROM `rt_table` WHERE MATCH('dub*')

获取所有包含“dub”子字符串的数据。

min_word_len    =   1
min_prefix_len  =   2

这是我的 index 配置的一部分。 我试过 set min_infix_len=2 但它没有帮助 问题是我无法进行通配符搜索 *。

请帮助别人!

【问题讨论】:

  • 更改配置后是否重新创建了索引?您需要删除(或截断)索引,然后重新插入所有数据。 (假设是 RT 索引,如果是标准磁盘索引,则需要通过 indexer 重新创建)

标签: search sphinx sphinxql


【解决方案1】:

如果您使用 SphinxQl,您只需对索引配置进行一些更改

min_word_len    =   2   
min_infix_len   =   2   
enable_star =   1   
dict        =   keywords

您可以使用通配符进行搜索

【讨论】:

  • 这个答案具有误导性,它并不真正正确,根本不需要进行这些更改。不需要更改 min_word_len。可以与 min_prefix_len 一起使用通配符,如果要在单词的两端使用通配符,则只需要中缀。不需要 enable_star=1 - 无论如何它都是细节。并且不需要 dict=keywords (它的默认值和中缀/前缀索引确实适用于 dict=crc)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多