如何让Sphinx忽略一些角色?

时间:2011-05-20 15:32:06

标签: sphinx

我正在创建一个带有MySQL后端和Sphinx作为搜索引擎的PHP网站。说,我和设计师有一个项目" Ray-Ban"当用户键入" ray ban"时,我需要得到它。或" rayban"。某处是否应该有排除名单?

3 个答案:

答案 0 :(得分:3)

这样做的标准方法是使用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

答案 1 :(得分:1)

你最好的选择可能是the exceptions file - 虽然这意味着你需要知道你希望两个不同的单词/短语被对待的每个案例。

答案 2 :(得分:1)

从版本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来删除软连字符。出于某种原因,这对我不起作用,但我上面给出的例子工作正常。