2015-06-24 54 views
1

的電熱毯我的搜索結果帶來了專門針對電動/毯/電熱毯的所有產品。」不過,我需要的結果只是具體到電熱毯。多字詞的搜索(的WebSphere Commerce7)

查詢我應用程序發送到SOLR有:

q =「電」,「一刀切」

需要什麼樣的變化在配置SOLR最終使這個搜索只針對電熱毯

回答

1

在你的schema.xml,加到文件末尾</schema>

<solrQueryParser defaultOperator="AND"/> 

Solr的文檔:https://wiki.apache.org/solr/SchemaXml#Default_query_parser_operator

+0

謝謝alexf。我會嘗試相同的。所以我認爲,SOLR將搜索「電」和「毯子」。但是,當我有毯子的同義詞時,這不會產生問題嗎?當我有毯子的同義詞時,我對SOLR的查詢有點像:「electric」「blanket」「throw」,所以如果我使用AND,它會搜索「電」和「毯子」和「扔」 0個搜索結果。那是對的嗎? – DivB

+0

嗨Alexf,我嘗試了你給出的解決方案。將Schema.xml更改爲使用'AND'而不是'OR'。但是,這會以負面的方式影響搜索結果。對於所有的搜索,我得到0返回的結果。無論是單個術語還是多個術語,我都會獲得搜索結果0。有什麼建議麼? – DivB

+1

爲了您的第一條評論,這解釋了只在索引時間使用同義詞更好!對於第二個,嘗試使用Solr界面的分析工具來了解您的文檔不匹配的原因。 – alexf

0

你不能有結果,只有特定的只是電熱毯。但是,您可以確保電熱毯的具體結果更具相關性,並返回到結果的頂部。

Websphere Commerce開箱即用的Solr配置非常基礎。爲了獲得預期的結果,需要在Solr和Webshere Commerce中進行大量的調整和配置更改(我們致力於編寫自定義類)。 sarona.co.uk在他們最新的博客中有關於此的一些很好的信息。

在SearchSetup.jspf
1

使檢索類別= 1001,而不是1000

<c:set var="searchType" value="1001" scope="request"/> 
下面

默認值的解釋 - 你也可以找到在同一個文件完整列表:

13. ANY     |  1000  | INCLUDE products, kits, bundles, category level SKUs 
           |  (Default)  | EXCLUDE product level SKUs 
           |     | 
    14. EXACT     |  1001  | INCLUDE products, kits, bundles, category level SKUs 
           |     | EXCLUDE product level SKUs 
           |     | 
    15. ALL     |  1002  | INCLUDE products, kits, bundles, category level SKUs 
           |     | EXCLUDE product level SKUs 

EXACT意志強制solr匹配整個句子,就像在intent qoute「search term」中鍵入搜索詞一樣,它將搜索產品名稱中包含EXACT句子的產品,簡短描述,類別名稱,SEO關鍵字,名稱覆蓋和說明覆蓋

希望你回答這個問題。

謝謝 Abed