【问题标题】:Accented characters are not indexed in Sphinx重音字符未在 Sphinx 中编制索引
【发布时间】:2013-10-03 11:34:59
【问题描述】:

我在搜索包含重音字符的单词时遇到问题。我用狮身人面像 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”。当我搜索 “Müller” - 我也只得到“Muller”结果。但是db中也有“Müller”记录, 没有正确索引。配置中存在 ü (U+00FC->u) 的映射。我是说之后 我在 charset_table 中添加了重音字符,它(重音字符)被转换了 据我了解,当我搜索时,而不是在内容被编入索引时。

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

我需要做什么来搜索“Muller/Müller”,同时给出“Muller”和 “穆勒”?

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

【问题讨论】:

    标签: sql sql-server sphinx diacritics


    【解决方案1】:

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

    【讨论】:

    • 不幸的是它没有帮助
    • 这是否记录在任何地方?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多