elasticsearch按字符串字段长度过滤

wn9m85ua  于 2023-11-17  发布在  ElasticSearch
关注(0)|答案(2)|浏览(213)

我正试图得到记录的有在'标题'超过X个字符。
注:并非所有记录都包含标题字段。
我试过:

GET books/_search
{
    "filter" : {
          "script" : {
              "script" : "_source.title.length() > 10"
          }
      }
}

字符串
结果,我得到了这个错误:

GroovyScriptExecutionException[NullPointerException[Cannot invoke method length() on null object


怎么解决呢?

i86rm4rw

i86rm4rw1#

你需要考虑到一些文档可能有一个null title字段。所以你可以使用groovy null-safe操作符。同时确保使用POST方法:

POST books/_search
{
    "filter" : {
          "script" : {
              "script" : "_source.title?.size() > 10"
          }
      }
}

字符串

xmakbtuz

xmakbtuz2#

您也可以使用自定义标记器来计算字符数。查看此答案以获取可能的帮助:https://stackoverflow.com/a/47556098/463846

相关问题