Я использую 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>
Возможно ли выполнить запрос функции при формировании запроса?