我正在尝试将范围查询与elasticsearch一起使用
{
"query": {
"range": {
"order_no": {
"gte": "VM-0001",
"lte": "VM-0005"
}
}
}
}
但是弹性返回没有结果。我发现系统存在字符串包含-
或问题_
这是该字段的映射:
"order_no" : {
"type" : "string",
"index_analyzer" : "str_index_analyzer",
"search_analyzer" : "str_search_analyzer"
}
{
"analysis": {
"analyzer": {
"str_search_analyzer": {
"tokenizer": "keyword",
"filter": [
"lowercase"
]
},
"str_index_analyzer": {
"tokenizer": "keyword",
"filter": [
"lowercase",
"substring"
]
}
},
"filter": {
"substring": {
"type": "nGram",
"min_gram": 1,
"max_gram": 20
}
}
}
}
{
"query": {
"range": {
"order_no": {
"gte": "vm-0001",
"lte": "vm-0005"
}
}
}
}
版本字符串有一个支持java类(版本),它实现了Comparable。 我的分析器是一个分析器包装器,它是一个小写和空格分析器,类似于内置的分析器。我使用经典的查询解析器进行搜索。在确切的条件下搜索工作良好。 我想做的是: 我试图在索引之前将版本字符串转换为int,但查询输入需要以某种方式转换,以便在搜索之前将版本字符串转换为int。 看起来我必须为version字段实现一个自定义分析器,但是我在
我使用elasticsearch处理带有日期值的字符串字段的数据,如下所示: 我试图使用范围筛选器从日期到日期获取值。例如: 但是结果不包含的值 如果使用或,则结果中将包含的值。 我的查询有什么问题?
问题内容: 在elasticsearch中,我们有两个字段:街道编号1和街道编号2。我们在Elastic Search中还有一个Address字段,而Address是2个字段与其他一些字段的组合。因此,我们的地址为: 1604-1612卡尔弗大厦 1608- 1645公园别墅 如果用户使用1610搜索,则应同时返回该地址。 有关如何形成查询的任何帮助? 问题答案: 想法是利用数据类型并将最小和最大
问题内容: 因此,我正在编写一个简单的程序来输入字符串并计算总数。的米 所以,这是我的代码 where 和str是我接受过的字符串,但是此错误不断出现 这是什么错误以及如何将其删除? 问题答案: 字符串,有效索引从0到n-1; 更改 至
问题内容: 弹性搜寻1.6 我想索引包含连字符的文本,例如U-12,U-17,WU-12,T恤…,并能够使用“简单查询字符串”查询来搜索它们。 数据样本(简体): 所以我去了这个映射: 使用以下查询进行搜索: 什么有效: “ U-12”,“ U ”,“ t ”,“ ts *” 什么不起作用: “ U-”,“ u-1 ”,“ t-”,“ t-sh ”,… 看来char过滤器未在搜索字符串上执行?我该
问题内容: 我正在发送此请求 我得到正确的结果 但是当我想按单词部分搜索时,例如 我没有得到任何结果: 我究竟做错了什么? 问题答案: 这是因为您的字段可能已由标准分析器(默认设置)进行了分析,并且标题已被标记为三个标记,并且。 为了搜索单词的任何子串,您需要创建一个自定义分析器,该分析器利用ngram令牌过滤器来索引每个令牌的所有子串。 您可以这样创建索引: 然后,您可以重新索引数据。这将使标题