Группировка 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 показывает значения и количество полей выше. Просто групповой запрос не возвращается правильно. Что-нибудь еще, что можно попробовать за это? Любая помощь приветствуется.