0

solrを使用して、名前でデータセットを検索しています(例:「Dan」または「JoeSmith」)。クエリで指定された結果(編集:最後にワイルドカードを付けて)を、別のインデックス付きフィールドdouble_score(10.0または72.3など)で指定された順序で返したいのですが。私は現在、まったく機能しない次のものを持っています:

<!-- Note that the default search is on the field name -->
<requestHandler name="/scoresearch" class="solr.SearchHandler" default="true">
   <!-- <lst name="invariants">
          <str name="q">{!boost b=sum(double_score) defType=dismax v=$qq}</str>
        </lst> -->
        <lst name="defaults">
          <str name="defType">dismax</str>    
          <str name="echoParams">explicit</str>
      <int name="rows">10</int>
     <!-- <str name="qq"></str> -->
      <str name="qf">double_score</str>
      <str name="debug">true</str>
      <str name="q.alt">*:*</str>
    </lst>
</requestHandler>

コメントを削除すると、検索は、実行したクエリがq.altに置き換えられ、double_scoreの値によってブーストされても機能します。これがq.altを置き換えなかった場合、それは望ましい効果になります。

また、名前のトークン化など、より興味深い可能性についてはまだ掘り下げていませんが、そうする予定です。したがって、考えられる提案/解決策がそれを排除するものであってはなりません。

4

2 に答える 2

1

私はあなたがそれを過度に複雑にしていると思います...これを試してください:

<lst name="defaults">
    <str name="defType">edismax</str>
    <str name="qf">name</str>
    <str name="q.alt">*:*</str>
    <str name="bf">double_score</str>
</lst>
于 2011-09-15T22:33:50.747 に答える
0

試す

http://localhost:8983/solr/select/?q=Joe Smith&qf=double_score^1.2 description

つまり:

  1. ジョー・スミスを探しています
  2. ダブルスコア説明のフィールドを検索しています

descriptionは、検索するテキストを保存するフィールドになります

説明にデータ型テキストが含まれていることを確認してください。

stored="true" (in case you want to return snippets)
indexed="true" (so it is searchable)

テキストデータ型はフィルター技術(ステミング、トークン化)を使用しますが、文字列データ型はそれをそのように処理します。SOLRインデックスのフィールドタイプを決定する方法を参照してください。

于 2011-09-15T17:17:24.397 に答える