2016-12-15 10 views
0

私はApache Solrに取り組んでいます。Apache Solrで "AND"を検索

現在、正常に動作しています。 pork AND bellyと入力すると、porkbellyのすべてのクエリが返されます。

しかし、私はpork and bellyを検索して同じ結果を得る必要があります。

しかし、すべての結果がporkまたはandまたはbellyで返されるわけではありません。

最も簡単な方法は、クエリを送信する前にJavaScriptで変更することです。

しかし、configを更新することでApache Solrからやり直す方法はありますか?

ありがとうございました。

私はでPatternReplaceCharFilterFactorydynamic fieldに追加して切り替えようとしましたが、明らかに失敗しました。

提案がありますか?

答えて

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ファイルは、そのリストにあります。

関連する問題