私は同義語のセットを開発しています。ここでは、次のような複数の単語の表現を見つけることができます。
ブラックベリー => ブラックベリー
分析段階で /admin/analysis.jsp ツールを使用すると、結果が正しいことがわかります。
「quiero una black berry」などのクエリは、次のシーケンスを返します。
org.apache.solr.analysis.StandardTokenizerFactory {luceneMatchVersion=LUCENE_36}:
position 1 2 3 4
term text quiero una black berry
startOffset 0 7 11 17
endOffset 6 10 16 22
type <ALPHANUM> <ALPHANUM> <ALPHANUM> <ALPHANUM>
org.apache.solr.analysis.SynonymFilterFactory {synonyms=lang/synonyms_es.txt, expand=false, ignoreCase=true, luceneMatchVersion=LUCENE_36}:
position 1 2 3
term text quiero una blackberry
type <ALPHANUM> <ALPHANUM> SYNONYM
startOffset 0 7 11
endOffset 6 10 22
ただし、この文を「実際の」クエリで試してみると、リクエスト ハンドラー (edismax ハンドラーの進化形)、トークン「black」と「berry」は「blackberry」に置き換えられませんでした。
FieldQParserプラグインを変更することで、この状況を解決できることがわかりました。
とにかく、そのような投稿はほぼ 3 年前に作成されたので、Solr 内でこの問題を解決し、プラグインを拡張する必要を回避する方法があるかどうかを知りたいです。
ありがとう。