当前位置: 首页 > 面试题库 >

elasticsearch按字符串字段的长度过滤

锺离玮
2023-03-14
问题内容

我试图获取记录在“标题”中,然后是X个字符。

注意:并非所有记录都包含标题字段。

我努力了:

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

结果,我得到这个错误:

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

我该如何解决?


问题答案:

您需要考虑到某些文档可能具有空title字段。因此,您可以使用常规的空安全运算符。另外,请确保改用POST方法:

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


 类似资料:
  • 问题内容: 我正在通过NEST c#使用ElasticSearch。我有很多关于人的信息 我希望能够按lastName以及长度的顺序对项目列表进行过滤和排序,因此名称中只有5个字符的人会出现在结果集的开头,然后是10个字符的人。 所以我想用一些伪代码做类似的事情 我是ElasticSearch的新手,所以任何示例都将非常有帮助。 问题答案: 您可以使用基于脚本的排序进行排序。 作为一个玩具示例,我

  • 问题内容: 我想检索有关字符串字段的数据,如最小,最大和平均长度(通过计算字符串中的字符数)。我的问题是聚合只能用于数字字段。此外,我使用简单的统计方面进行了尝试, 但出现碎片故障和SearchPhaseExecutionException。尝试使用脚本字段时,返回的错误是OutOfMemoryError: 是否可以使用CURL检索有关简单“ title”字符串字段的此类数据?谢谢! 问题答案:

  • 问题内容: 我在SQL数据库中有一个字符串,表示一个URL。有些网址很短,有些很长。我真的不知道这是我可能遇到的最长的URL,所以为了安全起见,我会采用较大的值,例如256或512。 当我定义最大字符串长度时(例如,使用SQLAlchemy): 即使实际的字符串较短,这是否也会占用每一行的空间(存储空间)? 我假设这与实现细节有关。我正在使用postgreSQL,但对sqlite和mysql也很感

  • 问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案:

  • 在Swift2.2中,我们如何找出字符串的长度(字节)? 我知道一个出路是使用

  • 问题内容: 我喜欢过滤掉字符串长度不等于10的数据。 如果我尝试过滤掉列A或B的字符串长度不等于10的任何行,则尝试这样做。 这工作缓慢,但正在工作。 但是,当A中的数据不是字符串而是数字(有时在read_csv读取输入文件时解释为数字)时,有时会产生错误。 我相信应该有更高效,更优雅的代码来代替。 根据下面的答案和评论,我找到的最简单的解决方案是: 要么 要么 问题答案: 应用于filex.cs