私信  •  关注

Marcel Balzer

Marcel Balzer 最近回复了
5 年前
回复了 Marcel Balzer 创建的主题 » Elasticsearch-如果匹配的单词越多,文档得分越高

我用一个带有自定义脚本的函数score查询解决了这个问题。

此脚本将成为完整的搜索项,并执行两项操作: 根据值的长度设置分数(因此这里的“ohne griffloch”比“griffloch”大,所以更好)。

第二个(可选,但对我来说是好事)是,它使用文本中值的位置。

我需要做的是,删除值数组并将索引中的每个值作为一个文档。

"functions": [
              {

                "script_score": {
                  "script": {
                    "source": "def v=doc['filterValue'].value; def score = 10000; score += v.length(); score -= \"ordner ohne griffloch\".indexOf(v)*50;",
                    "lang": "painless"
                  }
                }
              }
            ],
            "score_mode": "multiply",
            "boost_mode": "replace",
            "max_boost": 3.4028235e+38,
            "boost": 1
          }

  }