在Sphinx Search中,如何在charset_table中添加“hashtag”?

时间:2012-04-30 05:23:50

标签: search unicode utf-8 lucene sphinx

我希望人们能够搜索#photography以及photography。这些应该被视为Sphinx中的两个不同的词。默认情况下,#photography会映射到photography,我无法搜索主题标签。

我在this page上读到你可以将哈希标记添加到charset_table来完成此任务。我完全不懂如何做到这一点。我不知道unicode,我不知道我的charset_table应该是什么。

有人能告诉我我的charset_table应该是什么吗?感谢。

# charset_table     = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F

注意:我打算使用实时索引。 (不确定这是否有所不同)

2 个答案:

答案 0 :(得分:8)

根据Unicode表,它是U+0023。所以最终的配置应该是

charset_table     = 0..9, A..Z->a..z, _, a..z, U+23, U+410..U+42F->U+430..U+44F, U+430..U+44F

不要忘记charset_type变量。 AFAIK,此示例charset_table适用于utf-8。除此之外,您应该从U+23变量中删除blend_chars以允许Sphinx将其作为合法字符编入索引。

答案 1 :(得分:0)

  
    
      

我希望人们能够搜索#photography以及摄影。这些应该被视为Sphinx中的两个不同的词。默认情况下,#photography会映射到摄影,我无法搜索主题标签。

    
  
美好的一天。

我认为对你来说有一些解决方法,但是:

直接从用户查询调用搜索功能是不好的方式。

在sphinx引擎中调用搜索功能之前,需要对用户字符串进行某种处理。 例如,您可以检查用户字符串中的某些特殊字符,并从查询中删除特殊字符。你可以通过继续查询来调用搜索功能。

祝你好运。