2017-01-03 106 views
0
  1. 當我在Solr 4.0中分別搜索以下兩個過濾器查詢時,它按預期工作。如何將Solr中的兩個查詢與ComplexPhraseQueryParser結合起來?

    {!complexphrase inOrder=true}employeeName_t:"Mike R*"

    empDate_dt:[2016-10-10T00:00:00Z TO 2016-10-10T23:59:59Z]

  2. 但是當我結合這兩個查詢(不考慮順序),我沒有得到正確的搜索結果。

    • {!complexphrase inOrder=true}employeeName_t:"Mike R*" AND empDate_dt:[2016-10-10T00:00:00Z TO 2016-10-10T23:59:59Z]

    該查詢給了我在Solr的

    「響應」 零個的搜索結果:{ 「numFound」:0, 「開始」:0, 「maxScore」 :0, 「docs」:[] }

    • empDate_dt:[2016-10-10T00:00:00Z TO 2016-10-10T23:59:59Z] AND {!complexphrase inOrder=true}employeeName_t:"Mike R*"

    而在查詢順序的變化給我解析異常如下

    「錯誤」:{ 「味精」:「org.apache.solr.search.SyntaxError:org.apache。 lucene.queryparser.classic.ParseException:不能 解析'employeeName_t:\「Mike':第1行第21列出現詞法錯誤。遇到:after:\」\\「Mike \」「,code:400 }

    使用ComplexPhraseQueryParser部分搜索solr.Need使用兩個查詢。任何建議,這將不勝感激。

回答

0

我建議你使用fq參數。

文檔通過查詢檢索爲:「Mike R *」並使用fq參數中指定的日期進行過濾。

例子:

q={!complexphrase inOrder=true}employeeName_t:"Mike R*"&fq=empDate_dt:["2016-10-10T00:00:00Z" TO "2016-10-10T23:59:59Z"] 
+0

兩者都用作過濾查詢[多個過濾器]。是有可能在FQ使用這兩個並使其工作? 在此先感謝。 – Vish

+0

是,SOLR(> 4.5)支持,fq =(field1:value1或field2:value2)。你可以使用'q = mainQuery(*:*)&fq =({!complexphrase inOrder = true} employeeName_t:「Mike R *」AND empDate_dt:[「2016-10-10T00:00:00Z」TO「2016-10- 10T23:59:59Z「])' – vinod

+0

相應地更改主查詢q和運算符。 – vinod

相關問題