2016-07-27 1 views
0

フィールドの利用可能なすべての用語を抽出する例を見ました。hereLucene.Netのフィールドの用語ではなく、すべての格納値を取得する方法は?

なぜなら、私のporpousesに適合しない理由は、用語と保存された値が異なるためです。 "black cat"の格納された値は、2つの用語"black""cat"として表現されます。私のコードでは、この場合には格納された値全体を抽出する必要があります"black cat"

答えて

0

はい、できます。私は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(これも証明で、正しく動作します)

関連する問題