このプラグインがインデックス時に行うのと同じように (条件付き copyField の実装) https://wiki.apache.org/solr/UpdateRequestProcessor クエリ時に同じことをしたいと思います。
このプラグインを使用してテキストを一度見出し語化し、見出し語化したテキストを別のフィールドにコピーしました。
クエリ時に同じことをしたいのですが、方法がわかりません(または、これを見つけたほど簡単ではありません)。
だから私が欲しいのは、ユーザーが X を検索する場合、プラグインでこれを行うことです: y = process_text(y) そして、タイトルと本文があると仮定すると、この検索を行います: title:y body:y または、別の元のテキストが必要な場合があります。 field title:y body:y otherfield:x クエリ用語を変更する例はありますか? 皆さん、ありがとうございました
私はそれをよりよく説明するつもりです。
これらのフィールドがあります:text_en、text_en2de、text_de、text_de2en
英語、ドイツ語のテキストのレンマタイザーを作成しました。レンマタイザーは、テキストをレンマタイズするのに時間がかかります。
クエリ時に、私が言ったプラグインを使用し、テキストを 1 回だけレンマタイズします。次に、見出し語化されたテキストがそれらのフィールドにコピーされます。
しかし、text_en、text_de2enで検索する必要がある場合...フィールドごとに1回見出し語化する必要があり、時間がかかりました。
そのため、クエリ時にプラグインを作成して q フィールドを取得し、テキストを見出し語化し、この見出し語化されたテキストを必要なフィールドにリダイレクトしたいと考えています。
たとえば、カスタム SearchHandler を作成する場合 (これを行う必要があると思いますが、例が見つかりませんでした)、それを構成します
<requestHandler name="/select_en" class="CustomSearchHandler">
<lst name="defaults">
<int name="langs">de</int>
次に、q="running" のような検索を行うと、プラグインはこのテキストを取得して検索を行います
text_en=run&text_de2en=run