Подтвердить что ты не робот

Возможно ли сделать огранку Solr, объединяющую несколько полей, например, в нескольких столбцах в RMDB?

Скажем, я хочу сделать огранку на комбинации двух полей в моем документе.

Например:

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

Будет иметь результат грани, например

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

Возможно ли это? Я имею в виду "на лету", что означает, что поля выбраны случайным образом и, следовательно, не могут создать поле для копирования во время индекса.

4b9b3361

Ответ 1

Вы можете сгруппировать два поля, используя Pivot Facets, который доступен на Solr 4.0.

Вы можете запустить следующий запрос в своем индексе, чтобы получить его.

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

Тогда результат будет выглядеть следующим образом:

<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>