0

私が探しているのは、結果を「部分的に折りたたむ」操作です。これにより、特定のフィールドを持つドキュメントがグループ化され、ほぼ重複していると見なされる可能性のあるドキュメントが削除されますが、このフィールドが欠落しているすべてのドキュメントは、フィールドの折りたたみによる影響を受けません。

(具体的には、問題のドキュメントはディスカッションフォーラムの個々の投稿であり、スレッドで編成されます。フォーラムにはページごとにスレッド全体が表示されるため、ユーザーに関する限り、同じスレッドでの複数のヒットは基本的に重複しています。スレッドが長くなるにつれて、ユーザーが主題に固執する場合、これは非常に避けられません。ただし、この折りたたみがまったく意味をなさないドキュメントの種類は他にもたくさんあります。)

Solr 3.5を使用して、私が得た最も近いものは

...&group=true&group.main=true&group.field=threadid&group.limit=3

しかし、Solrは「欠落」を値として扱い、他のすべてを3つのヒットにまとめているようです。欠落している値を「一意」として扱いたいと思います。

これを行うことはできますか、それともスキーマ設計の改訂を検討する必要がありますか?

4

1 に答える 1

1

これは、solrの既存のクエリパラメーターでは直接可能ではないと思います。

動作する可能性のある2つのオプションがあります。

  • 各投稿にthreadid、「通常」と競合しない一意のスレッドIDが1回限りの投稿に含まれるようにしthreadidます。このフィールドでグループ化すると、これらの投稿は独自のグループに表示されます。

  • 2つのクエリを実行します。1つはグループ化を有効にしますが、 (eg )fqなしで投稿を除外するパラメータ、次に逆()を使用してスレッド化されていない投稿のみを対象とする別のクエリを実行し、これらの結果を独自のコードにマージします。threadidfq=threadid:[* TO *]fqfq=-threadid:[* TO *]

于 2012-06-08T13:23:58.550 に答える