0

検索しようとしているいくつかのドキュメントを含む既存のインデックスがあります。
「実際のテキスト」フィールドを検索すると、すべて問題ありません。
数値であるフィールドを検索しようとすると、検索結果は0になります。
コードは次のようなものです(ピルセンですが、概念は同じです):

dir = SimpleFSDirectory(File(indexDir))
analyzer = StandardAnalyzer(Version.LUCENE_CURRENT)
searcher = IndexSearcher(dir)
query = QueryParser(Version.LUCENE_CURRENT, "id", analyzer).parse("902")
hits = searcher.search(query, MAX)
print hits.totalHits #gives me 0

ルーク検索(id:902)でも空の結果が得られます。
lukeの[概要]タブを見ると、このフィールドはUTF-8(文字列)であると表示されます

私が間違っていることはありますか?

編集:
これは、インデックスが付けられ、ノルムがないフィールドで発生するようです(ルークのフラグによる)。
誰かがそれを説明できますか?

4

2 に答える 2

2

自分の質問に答えるのは好きではありませんが、この回答は重要な参考になると思います。
解決策は、求める数値と両方の数値を含む NumericRange クエリを配置することです (今回は Java で):

NumericRangeQuery.newIntRange("id", Integer.valueOf(902), Integer.valueOf(902),
true, true)     
于 2012-04-09T07:13:09.450 に答える
1

インデックス作成中に SimpleAnalyzer を使用していますか? 数字を取り除きます。インデックス作成と検索中に同じアナライザーを使用していることを確認してください。

于 2012-04-05T07:08:36.880 に答える