いくつかの必須属性と重み付けに影響するいくつかのオプション属性に応じて、最適な製品を返すクエリを作成しようとしています。
プロパティ 1 ~ 3 が必要
プロパティ 4-5 オプション
評価 1-3 オプション
データは次のように solr db で構造化されます。
property1 (string)
property2 (string)
property3 (string)
property4 (string)
property5 (string)
rating1 (int)
rating2 (int)
rating3 (int)
これまでに作成したクエリは、私を近づけますが、オプションのフィールドが特定の要求された値にどれだけ近いかは考慮されていません。
一例として、効率性や有用性などの任意のプロパティに対して 1 ~ 5 の評価が付けられます。ユーザーが rating1 を 4 に設定したい場合、値 3 と 5 は引き続き有効であり、同等に有効ではないことを認める必要があります。また、値 2 は 1 よりも重み付けされます。したがって、基本的には、製品が目的の評価値からどれだけ離れているかに基づいてスケールを作成します。
defType = dismax
sort = score desc
fl = entity_id,score,property4,property5,rating1,rating2,rating3
fq = property1:215 property2:45 property3:17
bq = property4:(H)^5 OR property5:(87)^5 OR rating1:(1)^5 OR rating2:(3)^5 OR rating3:(5)^5