是否有可能在多个字段中组合Solr faceting,例如RMDB中的多个列上的不同字段?

Bru*_*Cui 13 solr field facet

假设我想在我的文档中对两个字段的组合进行分面.

例如:

Field1  Field2
A        B
C        D
A        B
A        C
C        B
C        D
Run Code Online (Sandbox Code Playgroud)

会有像小平面的结果

AB [2]
CD [2]
AC [1]
CB [1]
Run Code Online (Sandbox Code Playgroud)

这可能吗?我的意思是在飞行中,这意味着字段是随机选取的,因此在索引期间无法创建复制域.

Par*_*ade 14

您可以使用Solr 4.0上提供的Pivot Facets对两个字段进行分组.

您可以对索引运行以下查询以获取它.

http://localhost:8181/solr/collection1/select?q=*:*&facet=true&facet.pivot=field1,field2
Run Code Online (Sandbox Code Playgroud)

然后,结果将是:

<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>
Run Code Online (Sandbox Code Playgroud)