Намиране на документи с Lucene, където даден термин се среща повече от определен брой пъти

Има ли начин да се създаде с помощта на Solr (или директно Lucene) заявка, която ще намери документи, които съдържат термин повече от определен брой пъти?

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

където "term" е SpanTermQuery и near е 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