Solr 5.3.0 を使用してニュース検索システムを作成しています。以下のニュース分野があると仮定します:{
- 題名
- コンテンツ
- 日にち
- ニュースの種類
}
この検索システムでは、会社名と管理者名の両方を検索しています。会社名を「スターク インダストリーズ」、マネージャー名を「トニー スターク」としましょう。結果を日付 (これは簡単に実行できます)、関連性、および次のルールで並べ替えたいと考えています。
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 を使用して会社名の重みを増やすことしかできません。
(Title && Content):(CompanyName && ManagerName) の重みを増やす方法があれば役立つはずです。(両方の用語が両方のフィールドに存在することを意味しようとしています。) しかし、この構文は qf では機能しません。
どんな助けでも大歓迎です。