1

solr queryを使用してこれが可能かどうか知りたい:

  1. 考慮すべき 2 つの列: location1、location2
  2. 両方の列で顔をしたい。

以下のクエリが機能します。

http://localhost:8983/solr/select/? q=*:*&version=2.2&rows=0&facet=true&facet.field=location1&facet.field=location2

応答:

    <response>
        <lst name="responseHeader">
            <int name="status">0</int>
            <int name="QTime">13</int>
        </lst>
        <result name="response" numFound="7789" start="0"/>
        <lst name="facet_counts">
        <lst name="facet_queries"/>
        <lst name="facet_fields">
        <lst name="location1">
            <int name="Chicago">100</int>
            <int name="NewYork">50</int>
            <int name="Washington">30</int>
        </lst>
        <lst name="location2">
            <int name="Washington">200</int>
            <int name="Philadelphia">100</int>
            <int name="Chicago">50</int>
        </lst>
<response>

私が必要としているのは、location1 と location2 の両方をグループ化し、次の結果を取得することです。

Washington  :230
Chicago     :50
Philadelphia:100
Washington  :30

現在、サービス層でそれを行っています。しかし、これはsolrで結果のグループ化を使用して行うことができますか? 私が理解しているのは、結果のグループ化はすべてのデータの集計を提供しますが、ファセット トピックの集計は行わないということです。

4

2 に答える 2

0

Solr は、複数値フィールドのグループ化をサポートしていません。

Support for grouping on a multi-valued field has not yet been implemented. 

おそらく、結合された値を使用してインデックス作成時に新しいフィールドを作成し、そのフィールドをファセットに使用できます。

EDIT :- コピー フィールドを使用して、両方のフィールドの内容を 1 つのフィールドにコピーし、ファセットを実行します。スキーマの変更とデータの再インデックスのみが必要

于 2013-03-01T07:54:18.997 に答える
0

location1と の両方をlocation2単一の多値フィールドに格納する必要がありますlocations。次に、このファセット クエリを発行して、必要なものを取得できます。

q=*:*&rows=0&facet=true&facet.field=locations
于 2013-03-01T14:39:52.603 に答える