簡體   English   中英

SOLR 評分:我可以從 Solr 中提取命中計數值嗎?

[英]SOLR Scoring : Can I Extract Hit Count Value from Solr?

我對 Solr 的用途是生成一個主要的搜索系統:我們基本上以小批量的方式提供大量文檔並在其上搜索預先指定的查詢。 掃描這些文檔中的每一個以查找此特定查詢,如果找到,我們需要將文件索引 id、路徑和該字符串在該文檔中的命中計數存儲在數據庫中。 我已經在網上搜索了從 solr 中提取每個文檔的命中計數值的方法,但到目前為止我所了解的是 Solr 會根據命中計數和各種其他因素自動對其結果進行排序,您可以使用這些因素進行編輯boosts 和 function 查詢參數。

  1. 是否有從 Solr 中提取命中計數的既定方法?

  2. 如果不是,是否可以更改 Solr 的評分公式,使其僅考慮命中數,然后要求 Solr 返回分數(在這種情況下基本上是命中數)

很抱歉,我的問題看起來有點令人困惑。我只希望從 Solr 返回每個文檔的命中數,以便我可以將其存儲在我的數據庫中。這是否可以通過 solr 直接實現?通過命中數,我的意思是如果我正在搜索特定關鍵字,則 Solr 索引中每個文檔的索引字段中的出現次數。

SOLR 結果實際上是根據文檔的相關性得分正確排序的,其中包括詞頻和許多其他較小的因素....我只想返回命中數:我想知道是否有直接的獲取命中數的方法,或更改 Solr 對文檔進行評分的方式,使其僅根據詞頻因子評分,並獲取我的 SOLR Z78E6221F6393D1356681DB398F14CE6 中每個文檔的詞頻值

我可以從 Solr 中提取命中計數值嗎? 根據命中數對其結果進行排序

您的標題主題是關於“命中數”,但通過閱讀您的文字,它接縫,您對 solr 分數感興趣 - 因為默認情況下 solr 按分數排序 - 這就是“命中數”的意思嗎?

是否有從 Solr 中提取命中計數的既定方法?

是的,可以獲得搜索文檔的“分數”值(順便說一下,也可以獲得命中數)

要獲得分數,只需將“字段列表”參數 (fl) 擴展為“分數”。 http://wiki.apache.org/solr/CommonQueryParameters#fl Example if you have the fields DOCUMENT,ID,PTAH - add score like that: http://localhost:8080/solr/select/?fl=DOCUMENT,ID ,PTAH,分數示例:

  <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:

第二次更新 - 如果您想計算一個文檔中的關鍵字數量以接收文檔 ID 和該文檔的單詞數,您可以結合使用 facet search 和 facet range 查詢范圍。 示例:查看制造商“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>

使用solr 4.0相對容易,只需在 fl 參數中添加一個偽字段:

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

如果您願意,也可以命名返回值:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM