Группировка Solr с использованием значения поля через запятую

У меня есть значение поля, разделенное запятыми, называемое "Категории", которое я проиндексировал и сохранил с использованием пользовательского типа поля, определенного как:

<fieldType name="text_comma_delimited" class="solr.TextField">
      <analyzer>
        <tokenizer class="solr.PatternTokenizerFactory" pattern="," />
      </analyzer>
</fieldType>

и я определил поле как:

<field name="Categories" type="text_comma_delimited" indexed="true" stored="true" />

Теперь я хочу, чтобы товары были сгруппированы по этим категориям, поэтому я использую простой запрос на группировку:

http://localhost:8089/solr/products/select?q=*:*&wt=json&indent=true&group=true&group.field=Categories&group.limit=-1&rows=-1&group.ngroups=true&group.facet=true

Но результат, который я получаю, просто возвращает 2 группы вместо 6. Кажется, что он рассматривает взаимно-однозначные отношения между продуктом и категорией, поэтому один продукт появляется только один раз, где он должен быть один ко многим. Один продукт может появляться в нескольких категориях. Вот результат:

{
  "responseHeader":{
    "status":0,
    "QTime":2,
    "params":{
      "fl":"Category,SKU",
      "group.ngroups":"true",
      "indent":"true",
      "start":"0",
      "q":"*:*",
      "group.limit":"-1",
      "group.field":"Category",
      "group":"true",
      "wt":"json",
      "group.facet":"true",
      "rows":"-1"}},
  "grouped":{
    "Specialties":{
      "matches":6,
      "ngroups":2,
      "groups":[{
          "groupValue":"Fiction",
          "doclist":{"numFound":3,"start":0,"docs":[
              {
                "SKU":"F5678",
                "Category":"Fiction,ABC,XYZ"},
              {
                "SKU":"F9876",
                "Category":"Fiction,ABC,PQR"},
              {
                "SKU":"F2365",
                "Category":"PQR,Fiction"},
              ]},
        {
          "groupValue":"Technical",
          "doclist":{"numFound":1,"start":0,"docs":[
              {
                "SKU":"T9876",
                "Category":"CVB,Technical"}]
          }}]}}}

Я попробовал огранку, и она четко показывает правильное количество для каждой категории с этим URL:

http://localhost:8089/solr/products/select?q=*:*&wt=json&indent=true&facet=true&facet.field=Categories

Результат дает мне идеальный список и количество, но вышеупомянутый группирующий ответ просто не хватает данных:

"facet_counts":{
    "facet_queries":{},
    "facet_fields":{
      "Categories":[
        "Fiction",3,
        "Mystery",1,
        "Sci-Fi",1,
        "Self Help",1,
        "Technical",1,
        "Philosophy",1
        ]},
    "facet_dates":{},
    "facet_ranges":{}}}

Кроме того, "Load Term Info" в браузере схемы консоли администратора solr показывает значения и количество полей выше. Просто групповой запрос не возвращается правильно. Что-нибудь еще, что можно попробовать за это? Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам