1

SQLサーバーは、IN演算子を使用して、次のような特定のIDを照会できます。

ID in (2,23,122,44,22) 

同じクエリを使用して、関連する結果を別のページに表示していました。表示速度を上げるためにlucene.netに移動する必要があるため、上記で使用した古いコードを置き換える必要があります。私はグーグルでたくさん検索しましたが、それに代わるものは見つかりませんでした。

lucene.netで次のようにブールクエリを作成してみました。

ID:1 OR ID:2 OR ID:3 

...しかし、1024式の制限により、私もこの方法を使用できません。この問題を解決する方法を提案してください。

4

2 に答える 2

0

デフォルトでは、クエリ内のすべての用語はデフォルトでORされます。

ID: 1 2 3

これにより、ID 1、2、および3のすべてのドキュメントのリストが返されます。

簡単なクエリを使用できます。

var ids = new[] { "1", "2", "3" };
var query = new QueryParser(version, idProperty, analyzer).Parse(string.Join(" ", ids));
于 2013-02-17T00:09:04.517 に答える
0

ブールクエリの句の最大数は、デフォルトで1024です。

この制限を増やすことができます。

ただし、パフォーマンスが低下します。または、ドキュメントの値にインデックスを付けて検索することもできます(luceneは同じ名前の異なるフィールドでOR操作を実行します)。

BooleanQueryクラスの静的プロパティを使用して制限を変更できます。

 BooleanQuery.MaxClauseCount = 99999;

オムリ

于 2013-02-11T05:40:15.030 に答える