1

IDフィールドを1つ追加しましたが、STORE NOフィールドには一意のIDのみが含まれます。NOT ANALYZEDindex.ID

INクエリを使用したい。たとえば、インデックスで検索してID 1、2、3、4のドキュメントのみが必要な場合は、スペース1 234でIDを区切るQueryParserを試しました。

それは私に与えます。しかし、もっと速くて実行可能な他の方法はありますか?

4

1 に答える 1

2

この質問を見ると、IN演算子を実装する他の方法がいくつかあります。

デフォルトでは、Lucene.Net(スペースで区切られた用語) に渡されるすべての用語は OR されます。実行中、

Id: 1 2 3 4

渡された ID のいずれかに一致するすべてのドキュメントを返します。

次のようなものを使用できます。

var collection = new[] { "1", "2", "3", "4" };
var query = new QueryParser(version, propertyName, analyzer)
    .Parse(string.Join(" ", collection));

演算子として用語のリストを Lucene.Net に渡しINます。

于 2013-02-19T05:24:53.347 に答える