我正在创建一个带有MySQL后端和Sphinx作为搜索引擎的PHP网站。说,我和设计师有一个项目" Ray-Ban"当用户键入" ray ban"时,我需要得到它。或" rayban"。某处是否应该有排除名单?
答案 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来删除软连字符。出于某种原因,这对我不起作用,但我上面给出的例子工作正常。