Sphinx索引配置文件有个wordfroms属性,wordfroms对应的是一个简单的字典文本文件,供sphinx在索引和搜索的时候替换词语使用。

Sphinx

作用

本质上,就是将一个词替换成另一个。这通常被用来将不同的词形变成一个单一的标准形式(即将词的各种形态如“walks”,“walked”,“walking”变为标准形式“walk”)。

例如:

walks>walk
walked>walk
walking>walk

也可以用来实现取词根的例外情况,因为词形字典中可以找到的词不会经过词干提取器的处理。 索引和搜索中的输入词都会利用词典做规则化。因此要使词形字典的更改起作用,需要重新索引并重启searchd。

影响

Sphnix的词形支持被设计成可以很好地支持很大的字典,仅对索引速度有微小的影响,搜索速度则完全不受影响。例如,一百万个条目的字典会使索引速度下降1.5倍。

额外的内存占用大体上等于字典文件的大小,而且字典是被多个索引共享的,即如果一个50MB的词形字典文件被10个不同的索引使用了,那么额外的searchd内存占用就是大约50MB。

格式

  • 每行包括一个源词和一个目标词,二者用大于号分隔。
  • 忽略大小写。
  • 遵循charset_table选项指定的规则。

技巧

  • 简繁转换

例如:

張>张
學>学

当搜索“张学友”和“張學友”和“張学友”能得到一样的结果.

  • 拼音纠错

例如:

张>zhang
学>xue
友>you

当搜索“张学友”和“zhang xue you”能得到一样的结果.