ElasticSearch 2.2.0にはelastic4sが使用されています。多くのクエリはディスク上にJSONとして保存され、elast4sドライバを使用してrawQueryとして使用されます。結果のスコアは、コマンドライン経由で送信されたクエリとelastic4sドライバとの間で異なります。 elastic4sドライバは、すべての結果に対して常にスコア1を返しますが、コマンドラインの実行によって2つの異なるスコアが得られます(異なるデータ型の場合)。elastic4s:rawQueryでスコアは1にとどまります
elastic4sのためのコード:私はrawQuery preparedQuery
以外のものを取り出して、それがスコアを変更しなかった
val searchResult = client.execute {
search in indexName types(product, company, orga, "User", "Workplace") rawQuery preparedQuery sourceInclude(preparedSourceField:_*) sort {sortDefintions:_*} start start limit limit
}.await
注意。コマンドラインを介して完全なクエリは非常に長いです:これはほとんどpreparedQuery
が、検索クエリと$search
の交換のためのものであることを
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "${search}",
"fields": [
"name",
"abbreviation",
"articleNumberManufacturer",
"productLine",
"productTitle^10",
"productSubtitle",
"productDescription",
"manufacturerRef.name",
"props"
]
}
}
],
"filter": [
{
"or": [
{
"bool": {
"must": [
{
"type": {
"value": "Product"
}
},
{
"term": {
"publishState": "published"
}
}
],
"must_not": [
{
"term": {
"productType": "MASTER"
}
},
{
"term": {
"deleted": true
}
}
]
}
}
]
}
]
}
}
}
注意。弾性検索RESTクライアントは、マッチのためにスコア3.075806を返します。
のメンバーではないあなたが、結果スコアを言うとき、これは、アイテム単位のスコアですか? 「弾性検索RESTクライアントは一致のスコアを3.075806返します」とは何ですか?平均? – James
elastic4sドライバとRESTを通して全く同じ結果が得られますか? – Val
@James弾性検索RESTクライアントとは、カールによる弾性検索を直接クエリすることを意味します。 Valのスコアは異なります.1つはelastic4、1つはcurl RESTクエリで3.075806です。 – TeTeT