2010-06-10 3 views

ответ

3

Вы можете использовать Query Highlighting.

+0

Как это могло бы помочь? –

+0

Выделение запроса выделяет все вхождения запроса в поле. –

1

Как уже упоминалось, используйте debugQuery = true. Затем ответ будет включать раздел «объяснение». По умолчанию, это даст вам некоторые ужасный форматированный текст, который выглядит следующим образом:

0.69102794 = (MATCH) weight(body:arrai^1.5 in 6357), product of: 
    0.46610788 = queryWeight(body:arrai^1.5), product of: 
    1.5 = boost 
    5.591044 = idf(docFreq=55709, maxDocs=5492855) 
    0.055577915 = queryNorm 
    1.4825494 = (MATCH) fieldWeight(body:arrai in 6357), product of: 
    2.828427 = tf(termFreq(body:arrai)=8) 
    5.591044 = idf(docFreq=55709, maxDocs=5492855) 
    0.09375 = fieldNorm(field=body, doc=6357) 

Для каждого матча в каждой области, вы получите блок, как это, что объясняет, как SOLR вычисляется релевантность этого документа к вашему запросу , О чем вы спрашиваете (сколько совпадений в поле этого документа) SOLR называет частоту «tf». Вы можете увидеть это на 7-й строке вывода, вставленного выше. В этой строке SOLR сообщает вам, что он нашел 8 совпадений для arrai в поле под названием «body».

Другие строки обозначают такие вещи, как инверсная частота документа - idf (как редко встречается согласованный термин) и fieldNorm, что связано с тем, насколько короче поле документа относительно соответствия. Вы можете узнать об этом здесь: http://wiki.apache.org/solr/SolrRelevancyFAQ

FYI, если вам нужна эта «объясняющая» информация в структурированном формате вместо неуклюжего текста, вы можете передать этот параметр с помощью вашего запроса: debug.explain.structured = true Однако его все еще довольно трудно использовать =)

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