我有记录
Item id: 1, name: "wd-40"
如何配置Sphinx以匹配以下查询中的此记录:
Item.search("wd40")
Item.search("wd-40")
答案 0 :(得分:1)
要回答您的标题问题,charset_table
就是您想要的。
http://sphinxsearch.com/docs/current.html#charsets
但是,这并不能解决匹配这两个查询的查询,索引 - 不起作用,只是将索引编入索引。
相反,您可能需要ignore_chars
答案 1 :(得分:0)
首先编制索引:
默认情况下,只有ascii字符由Sphinx索引;其他人被认为是单词分隔符。要解决此问题,您需要使用charset_table
参数将短划线映射到短划线字符。
第二次搜索:
AFAIK,不可能让Sphinx像您要求的那样考虑两种搜索。但是,您可以使用以下内容:
# in Python, but I believe is understandable
query = word
if '-' in word:
query += " | " + word.replace('-','')
Item.search(query) # if word = 'wd-40', query = 'wd-40 | wd40'