告诉Sphinx(或思考Sphinx)忽略索引时的句点

时间:2013-07-24 11:30:22

标签: sphinx thinking-sphinx

我对Sphinx有一个奇怪的问题,我试图能够匹配以下内容:

L.A。保密

所以人们可以搜索“洛杉矶机密”并仍然获得该头衔。同样对于“P.M.” 能够匹配“PM”等。

我尝试将句点(句号U + 002E)放在ignore_char列表中。这个 没有任何区别。

然后我尝试实现index_sp = 1。这也没有解决问题。

根据我对文档的理解,其中任何一个都应该已经解决了 这个问题是否正确?

我想知道它是否与我们的数学模式有关,它被设置为extended2,使用 Sphinx 2.0.3。

非常感谢任何帮助。

编辑,这是我的thinking_sphinx.yml配置:

请注意,除了ignore_chars行之外,我的配置中的其他任何地方都不使用句点字符(U + 002E)。

production:
  mem_limit: 512M
  morphology: stem_en
  wordforms: "db/sphinx/wordforms.txt"
  stopwords: "db/sphinx/stopwords.txt"
  ngram_chars: "U+4E00..U+9FBB, U+3400..U+4DB5, U+20000..U+2A6D6, U+FA0E, U+FA0F, U+FA11, \
  U+FA13, U+FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27, U+FA28, U+FA29, U+3105..U+312C, \
  U+31A0..U+31B7, U+3041, U+3043, U+3045, U+3047, U+3049, U+304B, U+304D, U+304F, U+3051, \
  U+3053, U+3055, U+3057, U+3059, U+305B, U+305D, U+305F, U+3061, U+3063, U+3066, U+3068, \
  U+306A..U+306F, U+3072, U+3075, U+3078, U+307B, U+307E..U+3083, U+3085, U+3087, \
  U+3089..U+308E, U+3090..U+3093, U+30A1, U+30A3, U+30A5, U+30A7, U+30A9, U+30AD, \
  U+30AF, U+30B3, U+30B5, U+30BB, U+30BD, U+30BF, U+30C1, U+30C3, U+30C4, U+30C6, \
  U+30CA, U+30CB, U+30CD, U+30CE, U+30DE, U+30DF, U+30E1, U+30E2, U+30E3, U+30E5, \/
  U+30E7, U+30EE, U+30F0..U+30F3, U+30F5, U+30F6, U+31F0, U+31F1, U+31F2, U+31F3, \
  U+31F4, U+31F5, U+31F6, U+31F7, U+31F8, U+31F9, U+31FA, U+31FB, U+31FC, U+31FD, \
  U+31FE, U+31FF, U+AC00..U+D7A3, U+1100..U+1159, U+1161..U+11A2, U+11A8..U+11F9, \
  U+A000..U+A48C, U+A492..U+A4C6"
  ngram_len:  1
  ignore_chars: "U+0027, U+2013, U+2014, U+0026, U+002E, ., &"
  (huge char_set entry here for different languages, ommited.)

1 个答案:

答案 0 :(得分:0)

我在Thinking.Sphinx v3.0.4的thinking_sphinx.yml中使用以下内容在本地运行测试并且它有效:

development:
  ignore_chars: U+002E

在思考Sphinx v2.0.14的sphinx.yml中也是如此。我正在使用Sphinx 2.0.8,但如果这是问题,我会有点惊讶。这肯定与你的比赛模式无关。