Is it possible to do Solr faceting combining multiple fields, like distinct on multiple columns in RMDB?

北战南征 提交于 2019-12-04 17:16:07

问题


Let's say I want to do faceting on the combination of two fields in my doc.

For example:

Field1  Field2
A        B
C        D
A        B
A        C
C        B
C        D

Will have the facet result like

AB [2]
CD [2]
AC [1]
CB [1]

Is this possible? I mean on the fly, which means the fields are picked randomly, and therefore cannot create a copyfield during index.


回答1:


You can group two fields using the Pivot Facets which is available on the Solr 4.0.

You can run the following query on your index to get it.

http://localhost:8181/solr/collection1/select?q=*:*&facet=true&facet.pivot=field1,field2

Then, the result will be like :

<lst name="facet_pivot">
  <arr name="field1,field2">
    <lst>
      <str name="field">field1</str>
      <str name="value">A</str>
      <int name="count">3</int>
      <arr name="pivot">
        <lst>
          <str name="field">field2</str>
          <str name="value">B</str>
          <int name="count">2</int>
        </lst>
        <lst>
          <str name="field">field2</str>
          <str name="value">C</str>
          <int name="count">1</int>
        </lst>
      </arr>
    </lst>
    <lst>
      <str name="field">field1</str>
      <str name="value">C</str>
      <int name="count">3</int>
      <arr name="pivot">
        <lst>
          <str name="field">field2</str>
          <str name="value">D</str>
          <int name="count">2</int>
        </lst>
        <lst>
          <str name="field">field2</str>
          <str name="value">B</str>
          <int name="count">1</int>
        </lst>
      </arr>
    </lst>
  </arr>
</lst>


来源:https://stackoverflow.com/questions/13855658/is-it-possible-to-do-solr-faceting-combining-multiple-fields-like-distinct-on-m

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!