1

私のスフィンクス構成ファイルには、次のものがあります。

ignore_chars: "U+0027"
charset_table: "0..9, a..z, _, A..Z->a..z, U+00C0->a, U+00C1->a,
  U+00C2->a, U+00C3->a, U+00C4->a, U+00C5->a, U+00C7->c, U+00C8->e,
  U+00C9->e, U+00CA->e, U+00CB->e, U+00CC->i, U+00CD->i, U+00CE->i [SNIP]"

(charset_table エントリはここから: http://speeple.com/unicode-maps.txt )

インデックスから ' (一重引用符/apos) を除外するように sphinx に指示しているため (ab'cd -> abcd) 、クエリを実行すると and/orにkyles一致するすべてのレコードが返されることが予想されます。ただし、実際には、これは起こりません。kyleskyle's

4

1 に答える 1

0

それをignore_charsに追加すると、望ましい効果とは逆になると思います。これは、sphinx にその文字で分割しないように指示していますが、その代わりに文字の周りの単語を無視するように折りたたんでいます。したがって、kyle'skylesの代わりにkyleなりsます。

この問題に対して試した解決策はs、ストップワードのリストに追加することでした('sそこにも必要かもしれませんが、思い出せません)。スフィンクスkyle'sは単語kyleとに分かれているよう'sです。すべて一致モードがオンになっているため、一部のドキュメントは の一致に失敗し'sます。ストップワードに追加すると、望ましい効果があるようです。

ただし、通常のステミングでこれを処理する必要があるように思われるため、両方とも何か間違ったことをしている可能性があります...

于 2011-04-06T21:36:47.523 に答える