Я использую BooleanQuery для объединения нескольких запросов. Я нахожу, что если я добавлю BooleanQuery в BooleanQuery, то результат не будет возвращен. Добавленный BooleanQuery является MUST_NOT, например -city_id: 100.Вложенный BooleanQuery?
Но, как говорит спецификация lucene, BooleanQuery может быть вложенным, что, я думаю, означает, что можно добавить такой BooleanQuery. Теперь мне нужно получить все предложения из добавляемого BooleanQuery, а затем добавить их в контейнер BooleanQuery один за другим.
Я немного смущен. Кто-нибудь может помочь? Большое спасибо!
Ах, похоже, работа. Благодарю. Но разве это не смущает? Я добавляю BooleanQuery в BooleanQuery, и все же мне нужно проверить, должен ли добавляться запрос и какой-то запрос. Кроме того, делает ли ANDing MatchAllDocsQuery в этом случае подрыв производительности? – KailZhang
Вы можете прочитать о логических запросах в этой теме. http://search-lucene.com/m/8x64lENo571/ По существу, NOT просто подавляет документы. Для этого вам нужен еще один положительный набор. Я не знаю деталей реализации MatchAllDocsQuery, но gettig все документы должны быть достаточно быстрыми. Дополнительная операция ANDing должна быть быстрой, а также внутренне выполнять операции на битете. –
Извинения за нарушенные предложения в предыдущем комментарии. –