2013-03-01 3 views
1

Я хочу знать, если это возможно с помощью Solr запроса:Solr Группировка с многопрофильными гранями

  1. Две колонок для рассмотрения: 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 

В настоящее время w e сделать это на сервисном уровне. Но можно ли это сделать, используя группировку результатов в solr? Я понимаю, что группировка результатов дает совокупность всех данных, но не выполняет агрегацию тематических тем.

ответ

0

Solr не support Grouping on Multivalued полей.

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

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

EDIT: - Используйте поле для копирования, чтобы скопировать содержимое обоих полей в одно поле и выполнить фасет на нем. Нужны только изменения схемы и переиндексация данных

+0

Thanks Jayendra! Но для меня Location1 и Location2 не являются многозначными полями. Могу ли я получить эти рассчитанные результаты? – PKH

+0

Если это не многозначные поля, то как вы огрызаетесь на нем? – Jayendra

+0

Это 2 разных поля, местоположение 1 и местоположение 2. Я оба поля являются частью поиска фасети. somthing вроде этого: facet.field = location1 & facet.field = location2 – PKH

0

Вам необходимо сохранить как location1, так и location2 в одном многозначном поле, скажем locations. Затем вы можете запросить этот фасетный запрос, чтобы получить то, что вы хотите:

q=*:*&rows=0&facet=true&facet.field=locations 
+0

Невозможно сгруппировать эти 2 поля отдельно от выполнения на уровне обслуживания? скажем, разобрать json и сгруппировать его с помощью специального кода? – PKH

Смежные вопросы