2016-12-15 157 views
0

我正在開發Apache Solr。Apache Solr搜索「AND」

目前,它工作正常。當我輸入pork AND belly時,它將返回所有含porkbelly的查詢。

但我需要搜索pork and belly並得到相同的結果。

但它不會像所有結果一樣返回porkandbelly

最簡單的方法是在發送查詢之前在JavaScript中更改它。

但是有沒有辦法通過更新config從Apache Solr來完成?

謝謝。

我做了什麼:我試圖通過在dynamic field上添加PatternReplaceCharFilterFactory來切換它schema.xml,但顯然它失敗了。

有什麼建議嗎?

回答

1

默認情況下,eDisMax查詢解析器接受小寫字母運算符。在您的solrconfig.xml中,指定該解析器,並且還可以明確告訴它接受小寫操作符:

<requestHandler name="search" class="solr.SearchHandler" default="true"> 
    <lst name="defaults"> 
    <str name="defType">edismax</str> 
    <bool name="lowercaseOperators">true</bool> 
    </lst> 
    ... 
</requestHandler> 
0

如果您使用(e)dismax查詢處理程序,只需搜索pork bellyq.op=AND應該可以正常工作。只要您爲您的設置(和適當的詞典)配置了StopWordFilter,and就會自動刪除。與Solr捆綁在一起的默認stopwords_en.txt文件在其列表中包含該文件。