В моем проекте мы используем solr для индексации большого количества документов различного типа, например Книги и Персоны, с некоторыми общими полями (например, именем) и некоторыми специфическими для типа полями (такими как категория или группа людей).принадлежат).
Мы хотели бы выполнить запросы, которые могут найти как книги, так и людей, для каждого типа документа применяются некоторые фильтры.Примерно так:
- найти все Книги и Персоны с "Джин" в названии и / или содержании
- , но только Книги из категории "художественная литература" и "фантастика"
- и только лица из группы "панголин"
- все отсортировано по баллам
Очень простой способ сделать это будет:
q = name:jean content:jean
&
fq=
(type:book AND category:(fiction fantasy))
OR
(type:person AND group:pangolin)
Ноувы, поскольку fq
кэшируется, я бы предпочел что-то, что позволило бы мне упростить и сделать более многократно используемым fq
, например:
fq=type:book
, fq=type:person
, fq=category(fiction fantasy)
, fq=group:pangolin
.
Можно ли сказать, что solr объединяет или объединяет много запросов?Что-то вроде «группировки» fq
вместе.
Я прочитал немного о вложенных запросах с _query_
, но очень мало документации об этом заставляет меня думать, что это не то решение, которое я ищу.