2015-12-11 193 views
0

我有使用SOLR進行搜索的問題。我的架構定義如下:SOLR結果不正確

<field name="_root_" type="string" indexed="true" stored="false"/> 
    <field name="_text_" type="text_general" multiValued="true" indexed="true" stored="true"/> 
    <field name="_version_" type="long" indexed="true" stored="true"/> 
    <field name="deleted" type="booleans" indexed="true" stored="true"/> 
    <field name="description" type="strings" indexed="true" stored="true"/> 
    <field name="favorites_count" type="tlongs"/> 
    <field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/> 
    <field name="image" type="strings"/> 
    <field name="ingredients" type="strings" multiValued="true" indexed="true" stored="true"/> 
    <field name="level" type="tlongs"/> 
    <field name="portions" type="tlongs" indexed="true" required="true" stored="true"/> 
    <field name="preparation" type="strings"/> 
    <field name="rating" type="tdoubles"/> 
    <field name="ratings_count" type="tlongs"/> 
    <field name="subject" type="strings" indexed="true" required="true" stored="true"/> 
    <field name="visible" type="booleans" indexed="true" stored="true"/> 

問題是當我嘗試在「配料」字段執行搜索時。

主查詢:

Q =(受試者: 「短語搜索輸入」 OR描述: 「短語搜索輸入」) 和成分:(「一些成分短語」)

或成分:searchWord

沒有成分參數的查詢工作得很好,輸出正確的結果。

但是,當涉及到對成分進行過濾時,無論我使用fq還是直接在查詢字符串中,我都會出錯或根本沒有結果。

各成分字段具有數據如下:

成分:[ 成分1, 配料2, 成分3短語]

的另一個問題是當成分具有「( 「或」)「字符,我正在尋找這樣一個短語 - 無法匹配。

SOLR版本:5.3

有沒有人可以幫助我呢?

謝謝!

回答

0

很難確定確切的原因,而無法查看數據並獲取更多信息。但是,您可以按照以下步驟自行解決問題。

  1. 使用Solr管理分析器查看數據如何存儲在配料字段以及它如何獲取查詢。
  2. 確認您正在將數據正確加載到配料字段中。確保您發送的每個值實際上都存儲爲單個令牌。
  3. 請記住,您不是標記該字段。這可能會影響搜索。
  4. 爲查詢添加一個「debug = true」參數;你會得到Solr如何「看到」查詢