0

solr を使用して検索エンジンを作成しました。ユーザーが「 college 」という単語を検索すると、「有名な」という単語が近接しているドキュメントのスコアが得られるようなクエリを作成したいと考えています(2 単語以内、つまり「有名な大学」または「大学は有名です」)。もっと高いべき。有名な単語が近接して存在しない場合、「大学」という単語のみに基づいてスコアを計算する必要があります。

私が欲しいのは、この「有名な大学」〜2 ^ 10 OR「有名な大学」〜1 ^ 10 OR「大学」のようなものです

eDismaxでこれを達成する方法は?

4

1 に答える 1

0

あなたが探しているのは、フレーズ スロップ 2 のフレーズ検索と呼ばれるものです。たとえば、既定値を設定すると、solrconfig.xml次のようになります。

  <requestHandler name="/phraseSearch" class="solr.SearchHandler">
    <lst name="defaults">
        <str name="defType">edismax</str>
        <str name="wt">xml</str>
        <str name="fl">Title</str>
        <str name="qf">Name^2 Description</str> <!-- The fields (and their weightings) to search in.-->
        <str name="rows">500</str>
        <str name="pf">Name^4 Description^2</str> <!-- Phrase field (and their weightings). Fields to search for closely located matches -->
        <str name="ps">2</str> <!-- Phrase slop. How many tokens apart must words be to be able to qualify as a phrase-->
     </lst>
  </requestHandler>

クエリでフレーズ検索を制御すると、次のようになります。

http://mySolrHost:8983/solr/myEDismaxQuery?q=Title:famous+college&defType=edismax&pf=Title&ps=2

eDismax を使用したフレーズ クエリの詳細については、eDismax の Solr リファレンス ページを参照してください

于 2013-12-02T10:23:36.350 に答える