我试图将match_phrase_prefix
查询与exclude查询一起使用,以便它匹配除要排除的术语之外的所有术语。我在一个基本的URI查询中找到了它,但不是常规的JSON查询。如何将此URI转换为JSON类型查询?
"http://127.0.0.1:9200/topics/_search?q=name:"
+ QUERY + "* AND !name=" + CURRENT_TAGS
其中current_tags
是不匹配的标记列表。
这是我目前所掌握的:
{
"query": {
"bool": {
"must": {
"match_phrase_prefix": {
"name": "a"
}
},
"filter": {
"terms": {
"name": [
"apple"
]
}
}
}
}
}
但是,当我这样做时,Apple
仍然包含在结果中。如何排除Apple
?
您就快到了,您可以使用must_not
,这是布尔查询的一部分来排除您不想要的文档,下面是示例的工作示例。
索引映射
{
"mappings": {
"properties": {
"name": {
"type": "text"
}
}
}
}
将示例文档索引为Apple
和Amazon
符合搜索条件的世界上最大的公司:)
搜索查询以排除Apple
{
"query": {
"bool": {
"must": {
"match_phrase_prefix": {
"name": "a"
}
},
"must_not": {
"match": {
"name": "apple"
}
}
}
}
}
搜索结果
"hits": [
{
"_index": "matchprase",
"_type": "_doc",
"_id": "2",
"_score": 0.6931471,
"_source": {
"name": "amazon"
}
}
]
问题内容: 具有以下映射: 我在上面放了两个项目: 现在,我想在每个字段上搜索,但是,所以我要做的是: 它应该只显示该项目,因为第二个项目带有单词,但是它在上,这就是我要忽略的内容。如何存档? PS:这只是一个简单的示例,我有一个包含很多属性的映射,我想在某些搜索中忽略其中的一些属性。 PS2:我正在使用ES 2.3.2 问题答案: 该设置仅在不返回响应中的字段时才有用,但这并不排除搜索该字段。
问题内容: 我有以下Elasticsearch查询。 假设我想从此搜索查询中排除。该文档指出以下内容: 它还支持通配符,例如:test ,以及“添加”(+)和“删除”(-)的功能,例如:+ test ,-test3。 据我了解,我应该能够执行以下操作。 但是,出现以下错误。 如果删除加号和减号,则查询运行正常。如果添加通配符,它似乎可以工作,例如以下查询。 但是,这并不是我真正想要的。 当我使
问题内容: 我是Elasticsearch的新手。我正在尝试编写一个查询,该查询将按字段分组并计算总和。在SQL中,我的查询如下所示: 我有在ES中看起来像这样的数据: 我想本质上在ES中运行与SQL中相同的查询,这样我的结果将类似于(当然是json): 问题答案: 在elasticsearch中,您可以通过使用术语stats facet 实现此目的:
也许查询过滤器不正确?(我尝试了几个选项都没有成功) 错误:{“错误”:“SearchPhaseExecutionException[未能执行阶段[query],总失败;shardFailures{[AS6HqxgNRtyU9-pQKhJsXQ][IDX_Cerception][3]:SearchParseException[[IDX_Cerception][3]:From[-1],大小[-1]:
我有两个独立的索引- 1。产品 2。currency_rates 产品索引中的文档具有以下详细信息- currency_rates索引中的文档具有以下详细信息- 我希望在products index的price字段中实现排序, 但是由于product index中的每个文档可能有不同的货币, 我需要首先将所有货币转换为美元, 并在转换后的ResultSet上进行carryout排序。 以下是我的创
我正在使用elasticsearch从json文件中过滤和搜索,我是这项技术的新手。所以我有点困惑如何在ElasticSearch中编写查询。 这是oracle查询。如何在ElasticSearch中编写此查询?我使用的是elasticsearch版本6.8.13