如何让 Sphinx 忽略某些字符?

发布于 2024-11-08 06:13:11 字数 120 浏览 2 评论 0原文

我正在制作一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

国产ˉ祖宗 2024-11-15 06:13:11

执行此操作的标准方法是 charset_table 选项。 charset_table 定义仅需要标记化的字符,

即使用此 charset_table

index YOUR_INDEX_NAME
{
charset_table =  0..9, A..Z->a..z, _, a..z

此类文本

My best fiend is Hoo-foo but not Pe_ter.!!! That's all.

将被解析为这些标记

my best friend is hoo foo but not pe_ter that s all

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

index YOUR_INDEX_NAME
{
charset_table =  0..9, A..Z->a..z, _, a..z

such text

My best fiend is Hoo-foo but not Pe_ter.!!! That's all.

is parsed as these tokens

my best friend is hoo foo but not pe_ter that s all
晨敛清荷 2024-11-15 06:13:11

你最好的选择可能是例外文件 - 尽管这意味着你会需要知道您希望对两个不同的单词/短语进行相同处理的每种情况。

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.

哽咽笑 2024-11-15 06:13:11

从版本 0.9.8 开始,每个名为ignore_chars 的索引都有一个可用的排除列表选项。

例如。

index YOUR_INDEX {
        charset_type = utf-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.

index YOUR_INDEX {
        charset_type = utf-8
        ignore_chars = -

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文