在Sphinx中使用wordforms或regexp强制mutilword术语成为“单词”

时间:2016-12-20 15:43:34

标签: sphinx

有没有办法“强迫”Sphinx索引一个术语,例如iphone 5成一个单项?由于各种原因,我无法将其搜索为"iphone 5"iphone near\1 5我需要将其搜索为iphone 5。当然,Sphinx的工作方式意味着当我希望它搜索确切的术语iphone时,它会在文档中的任何位置搜索5iphone 5。我可以以某种方式将iphone 5编入一个单项来实现这一目标。

我仍然需要能够将wordforms / regexp和其他映射应用于术语,例如。

iphone 5>iphone5

这样,如果有人在iphone5上搜索,它会找到iphone 5,反之亦然。问题是,如果我在iphone 5上进行搜索,而找到iphone5它也会找到Selling 5 iphone 6Gs,而如果我在"iphone 5"上搜索则找不到iphone5 {1}}。因此,我的目标是将iphone 5变成一个不需要""被视为短语而不被强制搜索为完全短语的术语,这将破坏任何其他wordform / regexp匹配。

1 个答案:

答案 0 :(得分:0)

您是否控制索引的配置? 如果是这样,您可以使用index_exact_words选项配置要创建的索引。

从文档(http://sphinxsearch.com/docs/current.html#conf-index-exact-words):

42年2月12日。 index_exact_words

是否将原始关键字与词干/重新映射版本一起索引。可选,默认为0(不进行索引)。在0.9.9-rc1版本中引入。

启用后,index_exact_words强制索引器将原始关键字与词干版本一起放入索引中。反过来,这使得查询语言中的精确表单运算符能够工作。这会影响索引大小和索引时间。但是,搜索性能根本不会受到影响。

示例:

index_exact_words = 1 `