1

我将如何构造一个 ElasticSearch 查询来满足以下要求:

价格必须在 100,000 到 200,000 之间,但也显示超出此范围的结果,但如果高于 200,000 或低于 100,000,相关性会降低。

到目前为止,我有以下内容,但它似乎没有做我想做的事情(为简洁起见,省略了包装查询):

"function_score": {
        "query": {
          "range": {
            "price_amount": {
              "gte": 100000,
              "lte": 200000
            }
          }
        },
        "functions": [
          {
            "gauss": {
              "price_amount": {
                "origin": "50000",
                "offset": "50000",
                "scale": "10000"
              }
            }
          }
        ]
      }

更新:

再看一眼,我认为将函数设置为以下,没有范围查询就可以了,不是吗?

"function_score": {
        "functions": [
          {
            "gauss": {
              "price_amount": {
                "origin": "150000",
                "offset": "50000",
                "scale": "10000"
              }
            }
          }
        ]
      }

非常感谢!李

4

0 回答 0