多分私は本当に何かが欠けています。
Lucene で一連のキーと値のペアのインデックスを作成しました (重要な場合は v4.1)。たとえば、プロパティ ファイルから読み取ったように、key1=value1 と key2=value2 があるとします。
それらは、特定のフィールドとして、およびキャッチオール「ALL」フィールドの両方に索引付けされます。
new Field("key1", "value1", aFieldTypeMimickingKeywords);
new Field("key2", "value2", aFieldTypeMimickingKeywords);
new Field("ALL", "key1=value1", aFieldTypeMimickingKeywords);
new Field("ALL", "key2=value2", aFieldTypeMimickingKeywords);
// then get added to the Document of course...
次に、次を使用してワイルドカード検索を実行できます
new WildcardQuery(new Term("ALL", "*alue1"));
そしてそれはヒットを見つけるでしょう。
しかし、「そのヒットに対応する完全な値 (例: "key1=value1") は何だったのか?」などの詳細情報が得られると便利です。
ドキュメントを取得し、IndexableFields のリストを取得し、それらすべてをループして、field.stringValue().contains("alue1") かどうかを確認するのが最善の方法です。(デバッガーでデータ構造を見ることができ、すべての情報がそこにあります)
これは完全に非常識な原因のように思えますが、それはLucene が行ったことではありませんか? ヒット情報はいくつかのフィールドを返すべきではありませんか?
Lucene には「明白な」機能のように見えるものが欠けていますか? Google と API から始めて、簡単なことは明らかにされていませんが、間違ったものを検索しているに違いないと感じています。