Разыменование параметра в грани solr json - PullRequest
0 голосов
/ 05 декабря 2018

Я использую solr6.6.Я пытаюсь использовать параметр Разыменование для фасетов json.

Для всех документов может быть несколько цен (предположим, sp, price1, price2, price3, price4 - это цены для всех документов).

На основе запроса мне нужно выбрать минимальное значение из комбинации этих цен и создать между ними фасеты.

Это можно сделать с помощью frange.Но есть ли способ сделать это с помощью json?

Ниже приведен пример запроса:

localhost:8983/solrcloud/myconf/select?q=apple& json.facet={ 'prices':{ 'type': 'query', 'q': "${FIELD}:[0 TO 20]" } } &FIELD=sp

Но когда я пытаюсь использовать что-то вроде этого:

localhost:8983/solrcloud/myconf/select?q=apple& json.facet={ 'prices':{ 'type': 'query', 'q': "${FIELD}:[0 TO 20]" } }&FIELD=min(price1, price2, price3, sp)

Мой другой запрос может быть таким, как показано ниже:

localhost:8983/solrcloud/myconf/select?q=apple& json.facet={ 'prices':{ 'type': 'query', 'q': "${FIELD}:[0 TO 20]" } }&FIELD=min(price1, price3, sp)

или

localhost:8983/solrcloud/myconf/select?q=apple& json.facet={ 'prices':{ 'type': 'query', 'q': "${FIELD}:[0 TO 20]" } }&FIELD=min(price1, price2)

Я могу использовать любую комбинацию, например (цена1, price2) или (price4, sp) .. и т. д.

Я получаю ошибку ниже:

<lst name="error">
<lst name="metadata">
<str name="error-class">org.apache.solr.common.SolrException</str>
<str name="root-error-class">org.apache.solr.parser.ParseException</str>
</lst>
<str name="msg">
org.apache.solr.search.SyntaxError: Cannot parse 'min(price1, price2, price3):[0 TO 20]': Encountered " ":" ": "" at line 1, column 12. Was expecting one of: <EOF> <AND> ... <OR> ... <NOT> ... "+" ... "-" ... <BAREOPER> ... "(" ... "*" ... "^" ... <QUOTED> ... <TERM> ... <PREFIXTERM> ... <WILDTERM> ... <REGEXPTERM> ... "[" ... "{" ... <LPARAMS> ... "filter(" ... <NUMBER> ...
</str>
<int name="code">400</int>
</lst>

Возможно ли выполнить запрос функции при формировании запроса?

...