あなたが言及したように、これはthis questionの欺瞞です。私は少なくともあなたの質問にそれへのリンクを追加することをお勧めします。また、ユーザーアカウントを作成することを強くお勧めします。今は古い質問を見てコンテキストを取得することができないからです。
具体的には、StandardAnalyzer
は頭字語を扱い、C.F.A.を変換します。 (たとえば)cfaに転送します。つまり、インデックス作成とクエリの解析に同じアナライザを使用することを確認している限り、検索を実行できるはずです。
他の要因を排除するために、さらに基本的なテストケースを実行することをお勧めします。マルチフィールドの代わりに普通のQueryParser
を試してみてください。ここで
は、私はと遊ぶために書いたいくつかのコードです
StandardAnalyzer
:
StringReader testReader = new StringReader("C.F.A. C.F.A word");
StandardAnalyzer analyzer = new StandardAnalyzer();
TokenStream tokenStream = analyzer.tokenStream("title", testReader);
System.out.println(tokenStream.next());
System.out.println(tokenStream.next());
System.out.println(tokenStream.next());
方法によって、このため出力があった:
(cfa,0,6,type=<ACRONYM>)
(c.f.a,7,12,type=<HOST>)
(word,13,17,type=<ALPHANUM>)
注意は、例えば、という頭字語は、「doesnの場合最後にドットで終わると、アナライザはインターネットホスト名とみなします。したがって、 "CFA"を検索すると "CFA"と一致しませんテキストで。