私はsolrを使ってインデックスを作成しました。次のコードを実行しようとしていますが、カウントにゼロの結果が得られます。サーチャーが結果を返さない理由は何ですか?
DirectoryReader dr = DirectoryReader.open(FSDirectory.open(new File(indexDir).toPath()));
IndexSearcher searcher = new IndexSearcher(dr);
System.out.println(dr.maxDoc()); // Shows 2000000
Query query = new FieldValueQuery("table");
CollectionStatistics stats = searcher.collectionStatistics("table");
System.out.println(stats.docCount()); // Shows 2000000
System.out.println(searcher.count(query)); //Shows 0, should be 2000000
のschema.xmlに提出されたテーブルの定義は次のとおりです。
<field name="table" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
インデックスにドキュメントを追加するためのコードは次のとおりです。
SolrInputDocument doc = new SolrInputDocument();
doc.addField("table", "job", 1.0f);
solrclient.add(doc);
solrclient.commit();
すべてのアイデア、なぜこれができました起こっている? FieldValueQueryでの検索が正しい結果を返していないのはなぜですか?
は事前にありがとうございました。
ドキュメントのインデックスを作成しますか?あなたのschema.xmlは何ですか? – root545
私は質問を編集しましたので、あなたは今すべての詳細を持っています – Roxana
https://lucene.apache.org/core/6_3_0/core/org/apache/lucene/search/FieldValueQuery.htmlによると、LeafReader .getDocsWithField()メソッドは、docvaluesに依存します。現在のスキーマバージョンでデフォルトで有効になっているかどうかは不明です。 – MatsLindh