是否有方法更改两次出现之间的加法操作(在布尔查询中)

u91tlkcl  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(454)

我有下一个问题:

  1. curl -X POST "localhost:9200/_search?pretty" -H 'Content-Type: application/json' -d'
  2. {
  3. "query": {
  4. "bool" : {
  5. "must" :
  6. { "term" :
  7. { "message" :
  8. {
  9. "value": "message",
  10. "boost": 2.0
  11. }
  12. }
  13. },
  14. "should" :
  15. { "term" :
  16. { "message" :
  17. {
  18. "value": "message",
  19. "boost": 2.0
  20. }
  21. }
  22. }
  23. }
  24. }
  25. }
  26. '

这个 _score 我从这个React中得到的是 _score (我没有望远镜也能看到( must / should ) )
我的问题是,是否有一种方法可以将动作改为倍数而不是加法
例如-取而代之 _score + _score 我去拿 _score * _score

rdrgkggo

rdrgkggo1#

您可以使用函数得分查询
一个工作示例(使用脚本分数): _score 将乘以 _score Map

  1. PUT index
  2. {
  3. "mappings": {
  4. "properties": {
  5. "message": {
  6. "type": "keyword"
  7. }
  8. }
  9. }
  10. }

插入文档

  1. POST index/_doc/1
  2. {
  3. "message":"message"
  4. }
  5. POST index/_doc/2
  6. {
  7. "message":"message"
  8. }

搜索查询不带 script_score ```
GET index/_search
{
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"term": {
"message": {
"value": "message"
}
}
}
],"should": [
{
"term": {
"message": {
"value": "message"
}
}
}
]
}
}
}
}
}

  1. 结果:

"hits" : [
{
"_index" : "index",
"_type" : "_doc",
"_id" : "3",
"_score" : 1.3862944,
"_source" : {
"message" : "message"
}
},
{
"_index" : "index",
"_type" : "_doc",
"_id" : "4",
"_score" : 1.3862944,
"_source" : {
"message" : "message"
}
}
]

  1. 搜索查询使用 `script_score` ```
  2. GET index/_search
  3. {
  4. "query": {
  5. "function_score": {
  6. "query": {
  7. "bool": {
  8. "must": [
  9. {
  10. "term": {
  11. "message": {
  12. "value": "message"
  13. }
  14. }
  15. }
  16. ],"should": [
  17. {
  18. "term": {
  19. "message": {
  20. "value": "message"
  21. }
  22. }
  23. }
  24. ]
  25. }
  26. },
  27. "script_score": {
  28. "script": {
  29. "source": "_score"
  30. }
  31. }
  32. }
  33. }
  34. }

结果

  1. "hits" : [
  2. {
  3. "_index" : "index",
  4. "_type" : "_doc",
  5. "_id" : "3",
  6. "_score" : 1.921812,
  7. "_source" : {
  8. "message" : "message"
  9. }
  10. },
  11. {
  12. "_index" : "index",
  13. "_type" : "_doc",
  14. "_id" : "4",
  15. "_score" : 1.921812,
  16. "_source" : {
  17. "message" : "message"
  18. }
  19. }
  20. ]
展开查看全部

相关问题