フィールドの利用可能なすべての用語を抽出する例を見ました。hereLucene.Netのフィールドの用語ではなく、すべての格納値を取得する方法は?
なぜなら、私のporpousesに適合しない理由は、用語と保存された値が異なるためです。 "black cat"
の格納された値は、2つの用語"black"
と"cat"
として表現されます。私のコードでは、この場合には格納された値全体を抽出する必要があります"black cat"
。
フィールドの利用可能なすべての用語を抽出する例を見ました。hereLucene.Netのフィールドの用語ではなく、すべての格納値を取得する方法は?
なぜなら、私のporpousesに適合しない理由は、用語と保存された値が異なるためです。 "black cat"
の格納された値は、2つの用語"black"
と"cat"
として表現されます。私のコードでは、この場合には格納された値全体を抽出する必要があります"black cat"
。
はい、できます。私はC#プログラマーではありませんが、うまくいけばJavaコードを理解することができます。
IndexReader reader = DirectoryReader.open(dir);
final int len = reader.maxDoc();
for (int i = 0; i < len; ++i) {
Document document = reader.document(i);
List<IndexableField> fields = document.getFields();
for (IndexableField field : fields) {
if (field.fieldType().stored()) {
System.out.println(field.stringValue());
}
}
}
だから、基本的に、私はすべてのフィールドを取得し、すべてのドキュメント間で横断していて、それらが保存されている場合は、データを取得します。あなたのために必要な、フィールドの名前でフィルタリングすることができます。
フルテストはここにあります - https://raw.githubusercontent.com/MysterionRise/information-retrieval-adventure/master/src/main/java/org/mystic/GetAllStoredFieldValues.java(これも証明で、正しく動作します)