私はニュース検索システムを作るのにSolr 5.3.0を使用しています。私はニュースのこれらの次のフィールドがあるとします。{Solr複数のフィールドの関連性とソートによる並べ替え
- タイトル
- コンテンツ
- 日
- NewsType
}
私は会社名の両方と探していますこの検索システムの管理者名。会社名は「Stark Industries」、マネージャー名は「Tony Stark」と言います。私は日付(これが行うのは簡単である)、関連性、および以下のルールで結果をソートしたい:
A:
用語は、「タイトル」フィールドと「コンテンツ」の両方に存在していることをニュースフィールド。
ニュースは「タイトル」フィールドにのみ存在するとのニュースです。
ニュースは「コンテンツ」フィールドにのみ存在するとのニュースです。
Bに:
ニュース会社名(スターク・インダストリーズ)とマネージャ名(トニー・スターク)の両方が存在すること。
会社名のみが存在するニュース。
マネージャー名のみが存在するというニュースです。
この順序は、1> 2> 3(1は2の上にあるはずです)である必要があります。そして、AとBは2つの異なる方法でニュースにスコアを付けるべきです。最終的な得点はA * Bに等しいかもしれません。
このコードdefType = edismax & qf=notice_title^200+notice_content
を使用して、「タイトル」フィールドの重みが「コンテンツ」フィールドよりも大きくなります。ですから、「タイトル」フィールドは「コンテンツ」フィールドよりも重要です。
しかし、このようにして、A1> A2> A3であることを確認することはできません。 「タイトル」フィールドのスコアが増加するだけです。 ルールBと同じですが、qfを使用してComany名の重みを増やすことしかできません。
(タイトル& &コンテンツ)の重量を増加させる方法がある場合:(仕入& & ManagerName)が役立つはずです。 (私は両方の分野に両方の用語が存在することを意味しようとする)しかし、この構文はqfでは機能しない。
助けていただければ幸いです。
bqフィールドを使用したことを意味しましたか?どのように私たちにできるのか、アイデアや例を挙げたいですか?ありがとうございました! –
すぐに私の答えが更新されます!私も同じSolrを使っているので、彼らはあなたのために働くでしょう –