例如,当我搜索'Désinfection'或'hello(worlds)'时,由于'é'和'('
我尝试用'*'和空格更改它,但是没有结果
Sphinx意外的搜索选项:[:match_mode]
狮身人面像查询(1.2ms)SELECT *,weight()as从form_core
WHERE MATCH('hello(worlds)@country 5')AND active
= 1 AND sphinx_deleted
= 0顺序BY store
DESC,st
DESC LIMIT 0、15选项field_weights =(vip_keywords = 20,categorie = 7,关键字= 4,rsu = 3,rs = 3,description = 2),max_matches = 150
Sphinx找到了0个结果
答案 0 :(得分:0)
这里需要注意的几件事:
要把带重音符号和不带重音符号的字符视为“相同”,您需要使用charset_table
设置:
可能值得一提的是,该设置涵盖了所有重音字符的其他人的值:
对于标点符号,Sphinx不会以默认行为将它们编入索引,因此Sphinx实际上会将字段中的“ hello(world)”存储为“ hello world”。如果要为标点符号建立索引(不建议使用标点符号,因为它会使字段值的灵活性大大降低),则需要将这些字符列为charset_table
设置的一部分。
也:我猜您正在使用TS v3或更高版本-太好了! -但这也意味着:match_mode
不再是一个有用的选项。 TS v3 +使用Sphinx的SphinxQL查询语法(在您的问题中可以看到-与SQL几乎相同),并且查询始终使用以前定义为扩展匹配模式的内容。