Подсчитайте общую частоту слова в индексе SOLR
Если я ищу слово в индексе SOLR, я получаю количество документов для документов, которые содержат это слово, но если слово включается в документ несколько раз, общее число все равно равно 1 на документ.
Мне нужно, чтобы каждый возвращенный документ подсчитывался по количеству раз, когда в поле было найдено искомое слово.
Я прочитал частоту слова в термине Solr и SOLR, и я включил компонент вектора термина, но он не работает.
Я настроил свое поле следующим образом:
<field name="text_text" type="textgen" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />
Но если я сделаю следующий запрос:
http://localhost:8888/solr/sources/select?q=text_text%3A%22Peter+Pan%22&fl=text_text&wt=json&indent=true&tv.tf
У меня нет счета
{
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"fl":"text_text",
"tv.tf":"",
"indent":"true",
"q":"text_text:\"Peter Pan\"",
"wt":"json"}},
"response":{"numFound":12,"start":0,"docs":[
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"},
{
"text_text":"Text of the document"}]
}}
Я вижу значение "numFound", равное 12, но слово "Питер Пэн" включено 20 раз во все 12 документов.
Не могли бы вы помочь мне найти, где я не прав, пожалуйста?
Большое спасибо!
2 ответа
Попробуйте эту структуру создания частоты слова в ответе:
http://localhost:8983/solr/core/select?indent=on&q=solr&fl=field,termfreq("field","term")&wt=json
Я думаю, что сначала ваш пример не сработает, потому что "Питер Пэн" - это не слово или термин, а фраза. Хорошее обсуждение проблемы поиска частоты фраз здесь:
Я бы попробовал ваш пример одним словом, а не фразой, и посмотрел бы, подходит ли он вам.