0

Solr (Solarium ライブラリを使用) を実装している e コマース サイトがあり、二重引用符 (通常はインチを表す) を含む製品名と説明があります。Solr のアナライザーとトークナイザーの部分を理解する前に、このデータを含むフィールドに text_en_splitting のデータ型を割り当てただけです。誰かがフレーズを検索した場合 -青の 1 インチ バインダー- 二重引用符が削除されており、返される最初の 10 個の結果が必ずしもバインダーであるとは限りません。返された結果は、単語 blue と数字の 1 に一致しているようです (これらはバインダーではありません)。Solr admin でクエリを分析すると、二重引用符が WordDelimiterFilterFactory から削除されていることがわかります。私は別の理由 (ポストイット ノートというフレーズを扱うなど) で WordDelimiterFilterFactory が好きなので、ここで幸せな媒体を見つけようとしています。検索を実行するときに保持する必要がある二重引用符を含むインデックス フィールドとクエリ フィールドの両方に対するより良い方法はありますか (それらは実際に何かを意味するため)。

4

2 に答える 2

0

私がやったことは、区切り文字の前に置換フィルターを追加し、インチという単語を使用することでした。

<filter class="solr.PatternReplaceFilterFactory" pattern='(\d)"' replacement='$1 inch' replace="all"/>
于 2015-01-17T20:17:27.957 に答える
0

Solr クエリ パーサー (DisMax など) は、への呼び出しを使用します。

SolrPluginUtils.stripUnbalancedQuotes(userQuery)) 

不均衡な引用符を削除します。バランスのとれた引用符は、フレーズ クエリ用です。

したがって、実際には独自のクエリ パーサーを設計する必要があります。

クエリが Solr に送られる前に、フロントエンドで引用符をフィートに置き換えることも検討してください。

于 2016-03-09T23:54:58.987 に答える