У меня есть индекс Lucene с многочисленными полями. Я хотел бы использовать его для поиска документов, ранжированных по количеству совпадающих полей, и чтобы результаты показывали, сколько полей согласовано.Lucene - результаты возвращаются по количеству совпадающих полей
В моем конкретном примере, документы в индексе Lucene представляет собой веб-страницу и поля являются такими вещами, как название, мета описания, h1 текст и т.д.
Если я ищу термин, как «велосипед», я хотите, чтобы все документы, содержащие слово «велосипед», были возвращены в любое поле. Тем не менее, я бы хотел, чтобы оценка релевантности указывала количество полей, содержащих ключевое слово «велосипед». Например, если документ содержит «велосипед» в названии и мета-описании, я бы хотел, чтобы этот документ был выше, чем один, который содержит «велосипед» только в названии. Я также хотел бы иметь возможность определить, что первый документ содержит два совпадения, где второй документ содержит только одно совпадение. Частота ключевого слова в определенном поле не имеет значения. Мне только нужно знать, соответствует ли она.
Я знаю, что могу использовать BooleanQuery
для поиска совпадений в одном поле, и я могу объединить их для выполнения AND или OR на нескольких полях, но я не уверен, как выполнить запрос, который вернет документ, который соответствует любое поле, но также возвращает некоторый показатель количества полей.
Любая помощь была бы высоко оценена!
Thanks rivu. Я пробовал этот подход, и он отлично работает! – nolt2232
спасибо. рад, что это помогло. – rivu