Как я могу запросить Solr, чтобы получить список со всеми именами полей с префиксом строки? - PullRequest
1 голос
/ 02 апреля 2019

Я хотел бы создать вывод на основе имен полей моих индексных объектов Solr.

У меня есть такие объекты, например, как:

{
    "Id":"ID12345678",
    "GroupKey":"Beta",
    "PricePackage":5796.0,
    "PriceCoupon":5316.0,
    "PriceMin":5316.0
}

При этом поля Price* могут варьироваться от объекта к объекту, некоторые могут иметь более трех полей, некоторые меньше, однако они всегда будут иметь префикс Price.

Как я могу запросить Solr, чтобы получить список со всеми именами полей с префиксом Price?

Я посмотрел на фильтры, аспекты, но не смог найти подсказки о том, как это сделать, как во всех примерах - например, regex facet - относится к значению поля, а не к имени поля. Или, по крайней мере, я не мог приспособить это к этому.

1 Ответ

1 голос
/ 05 апреля 2019

Вы можете получить список всех существующих имен полей через запятую, если запросите 0 документов и воспользуетесь средством записи ответов csv (параметр wt) для создания списка имен полей.

Например, если вы запрашиваете /solr/collection/select?q=*:*&wt=csv вы получите список всех полей.Если вам нужны только поля с префиксом Price, вы также можете добавить параметр списка полей (fl), чтобы ограничить поля.

Поэтому запрос на /solr/collection/select?q=*:*&wt=csv&fl=Price* должен вернуть следующий ответ:

PricePackage,PriceCoupon,PriceMin

С этим решением вы получаете все существующие поля, включая динамические.

...