1

私はこの状況を持っています

Entity Company_id 
-----------------
E001     1        
E001     2       
E003     1
E002     2
E001     3
E003     3

この場合、エンティティ (E001 と E003) を持つ会社の数を知りたいのですが、結果は会社 1 と 3 になります。

SQL では、ネストされたクエリを作成することで解決できますが、パフォーマンスが必要なため、lucene などを使用する必要があります。このクエリは、各ページで 50 回以上実行されます。

注: 3 つまたは 4 つのエンティティを制限する必要がある場合もあります。例: (E001 AND E002 AND E003 AND 3004) を持つすべての企業。

どんな助けでも大歓迎です

編集 lucene がテキスト検索用に作成されていることは知っていますが、各行がインデックス内のドキュメントであると仮定しましょう。

4

1 に答える 1

0

各会社が Lucene ドキュメントであり、0 個以上のエンティティが含まれるように Lucene インデックスを構成できる場合、(クエリ パーサー構文で) 「E001 と E003 を持つすべての会社」は次のようになります。

+entity:E001 +entity:E003

(ここで、エンティティはエンティティ フィールドです)。「E001 AND E002 AND E003 AND E004 を持つすべての会社は次のようになります。

+entity:E001 +entity:E002 +entity:E003 +entity:E004

次に、「Company_id」を Company ドキュメントの格納フィールドとして含めるだけで、クエリ結果で確認できます。

于 2013-08-16T18:30:32.773 に答える