У меня есть следующие документы:
doc1
description: "A doggo is a small dog."
doc2
description: "My dog is small.
doc3
description: "My cat is lazy."
Я ищу в своих документах следующий запрос:
description:*dog* OR small
, который возвращает документы: doc1
и doc2
Теперь я хочу получить общее количество терминов частоты каждого слова в запросе.Для этого я пытаюсь использовать функцию termfreq()
.
termfreq(description, *dog*)
termfreq(description, small)
Результат будет выглядеть так:
doc1
description: "A doggo is a small dog."
termfreq(description,*dog*): 0
termfreq(description, small): 1
doc2
description: "My dog is small.
termfreq(description, *dog*): 0
termfreq(description, small): 1
Или результат должен выглядеть так:
doc1
description: "A doggo is a small dog."
termfreq(description, *dog*): 2
termfreq(description, small): 1
doc2
description: "My dog is small.
termfreq(description, *dog*): 1
termfreq(description, small): 1
Мой вопрос: можно ли использовать подстановочный знак в функции termfreq?
- Если
yes
: Как? - Если
no
: Есть лиспособ получить частоту терминов запроса с частичными словами?
РЕДАКТИРОВАТЬ:
managed-схема
<fieldType name="descriptionNGram" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="30"/>
</analyzer>
</fieldType>
<field name="description" stored="true" type="descriptionNGram" multiValued="false" indexed="true"/>