Я работаю с системой, которая использует синтаксический анализатор запросов eDismax, который, как мне кажется, поддерживает синтаксис Lucene, но у меня возникла проблема с получением запросов для работы без Solr, который ищет «И» и «ИЛИ» в качестве литералаключи, используемые в критериях поиска.
В настоящее время я могу получить синтаксис Dismax для работы с +, чтобы собрать пересечение результатов:
http://...:8983/solr/collection/requesthandler?debugQuery=on&defType=edismax&fq=documents:"docgroup"&q=cat+dog+pizza&start=0&rows=50&sort=doc_date+asc
Я ищу синтаксис Lucene для работыс ИЛИ:
http://...:8983/solr/collection/requesthandler?debugQuery=on&defType=edismax&fq=documents:"docgroup"&q=(cat+OR+dog)+AND+(pizza+OR+Hawaii)&start=0&rows=50&sort=doc_date+asc
Строка отладки возвращает что-то вроде:
"rawquerystring":"(cat OR fish OR dog) AND (pizza OR Hawaii OR 2001)"
"querystring":"(cat OR fish OR dog) AND (pizza OR Hawaii OR 2001)"
"parsedquery":"(+(DisjunctionMaxQuery((docsection1:cat | docsection2: cat | ...... docsection1:or | docsection2:or ....
, где "или" и "и" включены в качестве ключей в поиске
Это проблема конфигурации?Я неправильно строю запрос?Справочное руководство по 6.6 Solr ссылается на этот синтаксис:
http://localhost:8983/solr/techproducts/select?defType=edismax&q=ipod+OR+video