【发布时间】:2015-02-09 17:44:07
【问题描述】:
请原谅我对 ElasticSearch 的了解。我有一个 Elasticsearch 集合,其中包含以下文档:
{
"date": "2013-12-30T00:00:00.000Z",
"value": 2,
"dimensions": {
"region": "Coimbra District"
}
}
{
"date": "2013-12-30T00:00:00.000Z",
"value": 1,
"dimensions": {
"region": "Federal District"
}
}
{
"date": "2013-12-30T00:00:00.000Z",
"value": 1,
"dimensions": {
"region": "Masovian Voivodeship"
}
}
这 3 个 json 文档在 ES 服务器中被索引。我没有提供任何分析器类型(也不知道如何提供一个:)) 我正在使用 spring data Elasticsearch 并执行以下查询来搜索区域为“Masovian Voivodeship”或“Federal District”的文档:
{
"query_string" : {
"query" : "Masovian Voivodeship OR Federal District",
"fields" : [ "dimensions.region" ]
}
}
我预计它会返回 2 次点击。但是,它会返回所有 3 个文档(可能是由于其中有第 3 个文档)。如何修改查询以便它可以执行精确匹配并且只提供 2 个文档?我正在使用以下方法:
QueryBuilders.queryString(<OR string>).field("dimensions.region")
我尝试过QueryBuilders.termsQuery、QueryBuilders.inQuery 和QueryBuilders.matchQuery(使用数组),但没有成功。
有人可以帮忙吗?提前致谢。
【问题讨论】:
-
elasticsearch.org/guide/en/elasticsearch/reference/current/… 尝试将 default_operator 设置为 AND。或者进行查询“Masovian AND Voivodeship OR Federal AND District”
-
嗨,我试过查询
{ "query_string" : { "query" : "Masovian AND Voivodeship OR Federal AND District", "fields" : [ "dimensions.region" ] } },但没有返回任何命中。
标签: java elasticsearch spring-data-elasticsearch