Я использую lucene для простого поиска, в котором индексированный документ состоит из поля name
и соответствующих контекстов (одно имя может иметь несколько контекстов, а контекст может совместно использоваться разными именами).Итак, чтобы проиндексировать имя с помощью контекстов, я создаю Document doc
:
doc.add(new BinaryDocValuesField("name", nameInBytesRef)
for (BytesRef context : contexts) {
doc.add(new StringField("contexts", context, Field.Store.NO));
doc.add(new SortedSetDocValueField("contexts", context"));
}
Теперь я хочу найти имена, которые соответствуют моему запросу и ограничены выбранным контекстом (если контекст не выбран,конечно отображаются все совпадающие имена).
Есть идеи, как мне составить запрос, чтобы поиск работал как задумано?
Спасибо!
P / S:Я использую Lucene 7.3.1
, поэтому QueryWrapperFilter
, упомянутый в , этот пост больше не существует.