Подсчет очков в SOLR: можно ли извлечь значение счетчика посещений из Solr? - PullRequest
0 голосов
/ 28 июня 2011

Я использую Solr для создания первичной поисковой системы: мы в основном подаем большой набор документов небольшими партиями и выполняем поиск по заданному запросу. Каждый из этих документов сканируется по данному конкретному запросу, и, если он найден, нам нужно сохранить в базе данных идентификатор индекса файла, путь и количество совпадений этой строки в этом документе. Я искал в Интернете способы извлечения значений количества обращений из solr для каждого документа, но все, что я до сих пор понял, это то, что Solr автоматически сортирует свои результаты на основе количества обращений и множества других факторов, которые можно редактировать с помощью Усиливает и функции запроса параметров.

  1. Существует ли установленный способ получения количества ударов из Solr?

  2. Если нет, то можно ли изменить формулу подсчета очков Солра так, чтобы она учитывала ТОЛЬКО счетчик попаданий, а затем попросить Солр вернуть счет (который в данном случае фактически был бы счетом попаданий)

( Мне жаль, что мой вопрос показался немного запутанным. Я хочу, чтобы счетчик обращений возвращался из Solr для каждого документа, чтобы я мог сохранить его в своей базе данных. Возможно ли это напрямую через solr? -count, я имею в виду, что, если я ищу определенное ключевое слово, количество вхождений в проиндексированных полях для каждого документа в индексе Solr. )

Результаты SOLR на самом деле сортируются на основе правильной оценки релевантности документа, которая включает в себя частоту терминов и множество других более мелких факторов ... Я хочу, чтобы возвращался только счетчик обращений: мне было интересно, есть ли либо прямой способ получить количество обращений, либо изменить то, как Solr оценивает документы, чтобы он оценивался только на основе коэффициента частоты термина и получал значение частоты термина для каждого документа в моем выводе SOLR

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Можно ли извлечь значение счетчика посещений из Solr?сортирует свои результаты на основе количества посещений

Ваша тема заголовка посвящена "Счету посещений", но, читая текст, он заинтересован в оценке Solr - потому что по умолчанию Solrсортирует по количеству очков - это то, что вы имеете в виду под "счетчиком обращений"?

Существует ли установленный способ извлечения подсчета обращений из Solr?

Да, это такможно получить значение «счет» для искомого документа (кстати, также можно получить счетчик совпадений)

Чтобы получить счет, просто разверните параметр «список полей» (fl) на «Гол".http://wiki.apache.org/solr/CommonQueryParameters#fl Пример, если у вас есть поля DOCUMENT, ID, PTAH - добавить счет следующим образом: http://localhost:8080/solr/select/?fl=DOCUMENT,ID,PTAH,score Пример:

  <lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">5</int>
    <lst name="params">
    <str name="start">0</str>
    <str name="fl">DOCUMENT,ID,PTAH,score</str>
    </lst>
  </lst>

// Обновление:

нет.случаев

Как часто (ключевое) слово встречается в индексе?На конкретном поле?Таким образом, поиск фасетов будет иметь значение для вас: http://wiki.apache.org/solr/SolrFacetingOverview

// Обновление 2:

2-е обновление - если вы хотите посчитать количество ключевых слов в одном документе, чтобы получить идентификатор документаи количество слов для этого документа, вы можете использовать поиск фасетов в сочетании с диапазоном запросов диапазона фасетов.Пример: посмотрите на все документы производителя «dell» и верните частоту этого ключевого слова для каждого документа (ID)

ID -> "dell" exits how many times?
241 -> 2
242 -> 0
243 -> 5

. Для этого используйте следующий параметр поиска:

<str name="facet.field">YOUR_TEXTFIELD</str>
<str name="facet.range">ID</str>        <--- ID=field woth the document ID
<str name="f.ID.facet.range.gap">1</str> <--- count ID in step of 1
<str name="f.ID.facet.range.start">0</str>   <--- start ID for faceted search
<str name="q">dell</str>                   <---string, "keyword" to look/count for
<str name="f.ID.facet.range.end">1000</str> <--- end ID for faceted search
<str name="facet">true</str>
<str name="facet.method">enum</str>
1 голос
/ 28 ноября 2011

Относительно легко использовать solr 4.0 , просто добавив псевдополе в параметр fl:

q=*:*&fl=*,termfreq(field,term)

Вы можете назвать возвращаемое значение, если вам нравится:

q=*:*&fl=*,tf:termfreq(field,term)
...