Это потому, что, начиная с Solr 7.3, значения по умолчанию для полей поиска для edismax фактически запрещают использование встроенного запроса.
Надеемся, что этим поведением можно управлять с помощью параметра uf
.
uf : Указывает, к каким полям схемы конечный пользователь имеет право явно запрашивать и переключать, поддерживаются ли встроенные запросы Solr.Этот параметр поддерживает подстановочные знаки.Несколько полей должны быть разделены пробелом.
По умолчанию разрешены все поля и нет встроенных запросов Solr, что эквивалентно uf=* -_query_
.
Установить uf=* _query_
, чтобы разрешить встроенныезапросы.
Я тестировал его на Solr 7.7.1, он работает, но мне пришлось заключить встроенный запрос в двойные кавычки, иначе запрос whole завершится неудачно , возвращая 0 результатовбез какого-либо уведомления.
Этот запрос должен работать:
defType=edismax&uf=* _query_&q=title:berlin* OR "{!parent which="type:book"}page_content:berlin"
Примечание: в документации есть примеры для Solr <7.3, в которых упоминается разделенный запятыми список в параметре <code>uf, но ожидаемыйразделитель определенно является пробелом.
Для тех, кто не использует edismax , вам придется установить luceneMatchVersion=7.1.0
для полной обратной совместимости.