如何让 Sphinx 忽略某些字符?
我正在制作一个 PHP 网站,使用 MySQL 后端和 Sphinx 作为搜索引擎。比如说,我有一个设计师为“Ray-Ban”的商品,当用户输入“ray ban”或“rayban”时,我需要得到它。某处是否应该有一个排除列表?
I'm making a PHP website with MySQL backend and Sphinx as a search engine. Say, I have an item with the designer "Ray-Ban" and I need to get it as a result when the user types "ray ban" or "rayban". Should there be an exclusion list somewhere?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
执行此操作的标准方法是 charset_table 选项。 charset_table 定义仅需要标记化的字符,
即使用此 charset_table
此类文本
将被解析为这些标记
The standart way to do so is a charset_table option. charset_table defines characters that only have to be tokenized,
ie with this charset_table
such text
is parsed as these tokens
你最好的选择可能是例外文件 - 尽管这意味着你会需要知道您希望对两个不同的单词/短语进行相同处理的每种情况。
Your best bet is probably the exceptions file - although that means you'll need to know every case where you want two different words/phrases to be treated the same.
从版本 0.9.8 开始,每个名为ignore_chars 的索引都有一个可用的排除列表选项。
例如。
更多信息请访问 Sphinx 网站:http://sphinxsearch。 com/docs/manual-0.9.8.html#conf-ignore-chars
旁注:他们在示例中展示了使用 U+AD 删除软连字符。由于某种原因,这对我不起作用,但我上面给出的示例效果很好。
As of version 0.9.8 there is an exclusion list option available per index named ignore_chars.
eg.
More information available on the Sphinx website: http://sphinxsearch.com/docs/manual-0.9.8.html#conf-ignore-chars
Side note: they show using U+AD to remove soft-hyphens in their example. For some reason this didn't work for me, but the example I gave above worked fine.