我正在尝试对存在弹性的数据执行4次操作。完全匹配(等于),包含,小于,大于。弹性中有两个选项,即查询和过滤器,从我到目前为止所学到的内容相同,但查询评估的分数最符合数据条件 - 值关系。
我想做的是简单的过滤或查询(我很困惑,在他们的网站中提到它的方式)
Application.Current.MainWindow.Content = new Page1();
或name=Arjun
或age=29
email=abc@asd.com
或电子邮件包含Ar
gmail.com
age>29
到目前为止我一直在使用这种格式(坦率地说,我没有时间做研究和实施)
age<20
包含
的格式{{ \"query\" : {{ \"filtered\" : {{ \"filter\" : {{ \"bool\" : {{ {{\"match\" : {\"" name "\" : \"" Arjun "\"} }} }} }} }} }} }}
以上格式大于或小于
我根据此URL使用bool表达式按过滤器进行组合 https://www.elastic.co/guide/en/elasticsearch/guide/current/_most_important_queries_and_filters.html
根据上面的链接,我们可以使用bool来组合查询,并按照示例中的指定
{{ \"query\" : {{ \"filtered\" : {{ \"filter\" : {{ \"bool\" : {{ {\"range\": {\"" age "\": {\"" + gt/lt+ "\": \"" 29 "\"} } } }} }} }} }} }}
我可以在没有过滤和内部过滤的情况下编写相同的内容吗?
现在我想在我的(杂乱的)代码中实现equals,我感觉它的代码也不是很好。
请帮帮我
答案 0 :(得分:1)
使用如下查询:
{
"query": {
"bool": {
"must": [
{
"term": {
"name": "Arjun"
}
},
{
"query_string": {
"default_field": "name",
"query": "Ar*"
}
},
{
"range": {
"age": {
"from": 10,
"to": 20
}
}
}
]
}
}
}