功能分数groovy脚本不返回任何结果

时间:2015-07-08 11:03:12

标签: groovy elasticsearch lucene

我的查询是

{
    "query": {
    "function_score": {
    "functions": [{
    "script_score": {
                "lang": "groovy",
                "script_file": "category-score",
                "params": {
                  "my_modifier": "doc['category'].value"
                }
              }
    },
    {
    "script_score": {
                "lang": "groovy",
                "script_file": "popularity-score",
                "params": {
                  "my_modifier": "doc['popularity'].value"
                }
              }
    },
    {
    "script_score": {
                "lang": "groovy",
                "script_file": "type-score",
                "params": {
                  "my_modifier": "doc['finder_type'].value"
                }
              }
    }
    ],
    "query": {
    "filtered": {
    "query": {"multi_match": {
    "query": "rent,buy",
    "fields": ["category","categorytags"]
    }},"filter": {
    "bool" : {"must": [{"terms" : { "city": ["mumbai"] }}]}
    },"_cache" : true
    }
    },
    "score_mode": "sum",
    "boost_mode": "replace"
    }
    }}

我的四个脚本文件看起来像

(my_modifier == 'rent,buy' ? 10 : 0)

log(my_modifier1.value)

(my_modifier2 > 0 ? 20 : 0)

我正在尝试使用三个script_score函数计算功能得分中匹配文档的分数。 我的脚本在启动时被编译,因为我可以在日志中看到,但它不会返回任何结果.ES版本是1.6.0。 另外,我如何使用ES-1.6.0启用内联/动态脚本,因为我尝试使用elasticsearch.yml中的许多设置更改作为ES,以及脚本模块的1.6.0版本的一些重大更改。

1 个答案:

答案 0 :(得分:-1)

              "my_modifier": "doc['finder_type'].value"

Params应该是值而不是脚本。