[英]elasticsearch filter by length of a string field
我試圖獲得“標題”中的記錄多於X個字符。
注意:並非所有記錄都包含標題字段。
我試過了:
GET books/_search
{
"filter" : {
"script" : {
"script" : "_source.title.length() > 10"
}
}
}
結果,我得到這個錯誤:
GroovyScriptExecutionException[NullPointerException[Cannot invoke method length() on null object
我怎么解決呢?
您需要考慮到某些文檔可能具有空title
字段。 所以你可以使用groovy null-safe運算符。 還要確保使用POST方法:
POST books/_search
{
"filter" : {
"script" : {
"script" : "_source.title?.size() > 10"
}
}
}
您還可以使用自定義標記生成器來計算字符數。 請查看此答案以獲取可能的幫助: https : //stackoverflow.com/a/47556098/463846
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.