重音字符未在Sphinx中编入索引

时间:2013-09-27 08:30:03

标签: sql sql-server sphinx diacritics

我在搜索包含重音字符的单词时遇到问题。我用的是Sphinx  2.1.1,Linux,MsSQL 2005通过odbc(freetds)。

这是我的sphinx.conf:

 source parentSource
 {
     type = odbc
     ...
 }

 index parentIndex
 {
     morphology = stem_en
     charset_type = utf-8
     charset_table = 0..9, a..z, A..Z->a..z, ... (mapping taken from 
     http://sphinxsearch.com/wiki/doku.php?id=charset_tables for common, A-Z)
     ...
 }

更改配置后,我重新编制了所有索引的索引并重新启动了searchd。  当我搜索“Muller”时 - 我得到的结果只包含“Muller”。当我搜索  “穆勒” - 我也只得到“穆勒”的结果。但是在db中也有“Müller”记录,  没有正确索引的。配置中存在的ü(U + 00FC-> u)的映射。我的意思是之后  我在charset_table中添加了重音字符,它(重音字符)被转换  当我搜索时,但不是在内容被索引时,正如我所理解的那样。

当我使用--buildstops选项运行索引器时,我在输出文件中找到了下一条记录:“mller”。  是的,当我搜索“mller”时 - 我得到了“Müller”的结果(但当然没有“穆勒”)。

我需要为“Muller /Müller”搜索所需要的内容为“Muller”和“Muller”提供结果  “米勒”?

PS:用于列(和用于wohle数据库)的排序规则是SQL_LATIN1_GENERAL_CP1_CI_AS。一世  将列类型从varchar更改为nvarchar,但它没有帮助。 “穆勒”记录  在网站上正确显示(没有???)和当我使用--dump-rows运行索引器时。

1 个答案:

答案 0 :(得分:0)

您是否尝试将排序规则更改为SQL_LATIN1_GENERAL_CP1_CI_AI - 即:重音不敏感。