![](/img/trans.png)
[英]How to query with Range Query in elasticsearch (certain fields probably not exist )
[英]How to specify certain fields only in the query property
我正在使用一个服务,它将请求包装到Elastic Search。 此服务仅允许我将query
属性发送到Elastic Search。 我想告诉Elastic Search只查找文档中某个字段的匹配项。
例如,如果这是我的文档:
{
name: 'foo',
value: 'true'
}
然后我想告诉Elastic Search只查找name
等于foo
文档。
Elastic Search 文档说通过使用fields
属性来执行此操作:
{
"multi_match" : {
"query" : "this is a test",
"fields" : [ "subject^3", "message" ]
}
}
但我只能访问query
属性,所以我不能指定fields
。 在页面下方,在最佳字段下,它表示这相当于执行类似+first_name:will +first_name:smith
。 但是,当我把这个,它是寻找实际匹配的文本+first_name:will +first_name:smith
的价值,而不是寻找一个first_name
具有值字段will
。
是否可以仅使用query
属性指定要使用弹性搜索搜索的字段?
这听起来像是query_string
的完美匹配( https://www.elastic.co/guide/en/elasticsearch/reference/1.x/query-dsl-query-string-query.html )。 你可以用它做这样的事情:
"query_string" : {
"query" : "subject:whatever OR message:whatever"
}
所以,如果你可以改变multi_match
到query_string
这将是你在找什么。
Lucene支持现场数据。 执行搜索时,您可以指定字段,也可以使用默认字段。 字段名称和默认字段是特定于实现的。
您可以通过键入字段名称后跟冒号“:”来搜索任何字段,然后输入您要查找的术语。
{
"query": {
"query_string": {
"query": "Name:\"foo bar cook\"",
"default_operator" : "or"
}
}
}
使用default_operator
并执行AND操作,或在值之间执行OR类操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.