在elasticsearch查询中使用field_value_factor函数时遇到错误

时间:2014-04-29 09:06:20

标签: elasticsearch

大家,我使用的是elasticsearch版本1.1.1,我已经正确验证了版本。在elasticsearch文档中,有一个函数得分查询,它提供了一个名为field_value_factor的函数,但是当我尝试使用它时,我收到了这个错误:

nested: QueryParsingException[[teindex] No function with the name [field_value_factor] is registered.]

以下是我使用它的方式:

           "function_score": {
              "functions": [
                 {
                    "gauss": {
                       "createVendor": {
                          "scale": "2d",
                          "offset": "5d",
                          "decay" : 0.5
                       }
                    }
                 },
                 {
                     "field_value_factor": {
                         "field" : "ipscore",
                         "modifier" : "log"
                     }
                 }
              ],
              "query": {
                 "multi_match": {
                    "query": "beach",
                    "fields": ["title^12","description^5","tags^8" ]
                 }
              },
              "score_mode": "multiply"
           }

有关失败原因的任何线索?感谢。

2 个答案:

答案 0 :(得分:4)

我一直有同样的问题。正如@Thorsten所建议的那样,我可以确认这在v1.1.1中绝对没有(在编写本文时是官方存储库中的最新版本)。它看起来像是在v1.2.0中......希望如此。

你现在可以尝试这样的事情:

       "function_score": {
          "functions": [
             {
                "gauss": {
                   "createVendor": {
                      "scale": "2d",
                      "offset": "5d",
                      "decay" : 0.5
                   }
                }
             },
             {
                 "script_score": {
                "script": "_score * log(doc['ipscore'].value)"
            }
             }
          ],
          "query": {
             "multi_match": {
                "query": "beach",
                "fields": ["title^12","description^5","tags^8" ]
             }
          },
          "score_mode": "multiply"
       }

答案 1 :(得分:0)

自2014年5月22日发布的Elasticsearch 1.2.0版以来,字段价值因素似乎可用:

https://www.elastic.co/blog/elasticsearch-1-2-0-released

因此升级到该版本或更高版本应该可以解决问题。