2015-01-09 4 views
1

Как вы можете использовать математические операции Solr или функциональные запросы для добавления значений частоты (tf) для каждого слова для всех документов, возвращаемых запросом?Добавить термин Частоты из нескольких документов (Solr)

Я знаю, что существуют способы итеративного добавления векторов с использованием java, но это может занять много времени, если индекс большой или ограниченная память. Solr имеет начальные значения частоты и способность добавлять нормальные значения поля, поэтому я думаю, что он должен иметь возможность добавлять термины, я просто не знаю, как это сделать.

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

Для этого результата док:

"docs": [ 
    { 
    "id": 0, 
    "content": [ 
     "FOO FOO BAR" 
    ], 
    }, 
    { 
    "id": 0, 
    "content": [ 
     "FOO BAR" 
    ], 
    }, 
]},"termVectors": [ 
"uniqueKeyFieldName", 
[ 
    "0", 
    [ 
    "FOO", 
    [ 
     "tf", 
     2 
    ], 
    "BAR", 
    [ 
     "tf", 
     1 
    ], 
],"1", 
    [ 
    "FOO", 
    [ 
     "tf", 
     1 
    ], 
    "BAR", 
    [ 
     "tf", 
     1]]} 

Я хотел бы что-то вроде этого, вместо:

{"frequencies":{ 
"FOO" : 3 
"BAR" : 2 
} 


UPDATE: теперь я в порядке с программным подходом с использованием Java, потому что я не думаю, что SOLR поддерживает такую ​​операцию из коробки.

ответ

0

totaltermfreq or ttf дает общее количество раз, когда термины встречаются в индексе.

+0

Да, я нашел их, и они полезны, но не то, что я ищу. Я ищу сумму сроков частот только для документов, возвращаемых запросом, а не для всего индекса. – user22490234

0

Вы уже учли «facet» особенность?

+0

Я не считаю, что аспекты - это то, что я ищу, потому что я не могу позволить себе создавать дополнительные ограненные поля для моего основного контента (для контента, на котором я был для частот). Это позволило бы удвоить размер моего индекса, а это слишком много места на диске. – user22490234

Смежные вопросы