簡體   English   中英

使用dismax查詢解析器的{!boost ...}乘數

[英]{!boost …} multiplier with dismax query parser

如何在dismax查詢解析器中使用q={!boost ...}乘數?

使用標准查詢,您可以執行以下操作:

?q={!boost b=$multiplier}text:foo
&multiplier=...

但是,當我嘗試為dismax做等效時:

?defType=dismax
&q={!boost b=$multiplier}foo
&qf=text
&multiplier=...

我收到以下錯誤:

{
  "error": {
    "msg": "no field name specified in query and no default specified via 'df' param",
    "code": 400
  }
}

我猜測在q中指定{!boost ...}會覆蓋defType=dismax並導致使用標准查詢解析器解析q的剩余部分。 如何在dismax中使用{!boost ...}

注意:我正在運行Solr 4.10.4。

根據Solr RelevancyFAQ§如何提高新文檔的分數

為了增強另一個查詢解析器,例如dismax查詢,boost查詢的值是一個完整的子查詢,因此可以使用{!queryParser}語法。 或者,可以在boost local params中使用defType參數將默認類型設置為dismax。 其他dismax參數可以設置為頂級參數。

這意味着為了將dismax (或任何其他查詢解析器)與boost查詢解析器一起使用,您需要將參數結構化為:

?q={!boost b=$multiplier v=$qq}
&qq={!dismax}foo
&qf=text
&multiplier=...

要么:

?q={!boost b=$multiplier defType=dismax}foo
&qf=text
&multiplier=...

暫無
暫無

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

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