Поиск документов с помощью Lucene, в которых термин встречается более определенного количества раз

Есть ли способ создать с помощью Solr (или напрямую Lucene) запрос, который будет находить документы, содержащие термин более определенного количества раз?

В настоящее время мне удалось найти только обходное решение с использованием SpanNearQuery. Это можно использовать, чтобы сказать, что два интервала находятся рядом друг с другом, поэтому, используя n - 1 inOrder SpanNearQuery, такой запрос может быть построен, например. "term" должно встречаться 4 раза: (("term" рядом с "term") рядом с "term") рядом с "term"

где «термин» — это SpanTermQuery, а рядом — inOrder SpanNearQuery с большим отходом.


person Dan2097    schedule 13.10.2019    source источник


Ответы (1)


termfreq запрос функции используется для получить частоту термина и, кроме того, функцию Можно использовать анализатор запросов диапазона, который позволяет выполнять запросы диапазона или фильтровать диапазоны для произвольных функций.

q=*&fq={!frange l=2}termfreq(category_t,'demo')

Приведенный выше запрос извлекает только те документы, в которых демонстрация повторяется два или более раз в поле category_t.

person Sanjay Dutt    schedule 13.10.2019