有没有办法“强迫”Sphinx
索引一个术语,例如iphone 5
成一个单项?由于各种原因,我无法将其搜索为"iphone 5"
或iphone near\1 5
我需要将其搜索为iphone 5
。当然,Sphinx的工作方式意味着当我希望它搜索确切的术语iphone
时,它会在文档中的任何位置搜索5
和iphone 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匹配。
答案 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 `