以下是可用的样本数据:
示例查询:
"query": {
"bool": {
"must": [
{
"prefix": {
"sfield.exact": {
"value": "car hire"
}
}
}
]
}
}
尝试了match_phrase_prefix,这也类似于prefix
示例查询:
"query": {
"bool": {
"must": [
{
"match_phrase_prefix": {
"sfield": {
"value": "car hire"
}
}
}
]
}
}
"query": {
"bool": {
"must": [
{
"prefix": {
"sfield.exact": {
"value": "car "
}
}
},
{
"query_string": {
"default_field": "sfield",
"query": "car hire*",
"default_operator": "AND"
}
}
]
}
}
"mappings": {
"ctype": {
"_all": { "enabled": false },
"properties": {
"id": { "type": "long" },
"cname": { "type": "text" },
"sfield": {
"type": "text",
"fields": {
"exact": {
"type": "keyword"
}
}
}
}
}
}
如果我理解正确的话,您只需要start with
选项。所以我建议您使用通配符
:
"query": {
"bool": {
"must": [
{
"wildcard": {
"sfield.exact": "car hire*"
}
}
]
}
参见通配符
我有一个字段,使用空白标记器和小写和asciifolding过滤器进行分析。我试图运行一个同时包含前缀和通配符的查询。我们正在用ElasticSearch取代一个使用纯Lucene的本土搜索引擎,类似的查询确实使用Lucene语法,但在ElasticSearch中不起作用。 例如,该查询将查找在“name”字段中有“Smith John”的所有文档。 如果我省略引号,我会得到结果,但这包括在同一文
问题内容: 我在获取与Elasticsearch一起使用的嵌套查询时遇到问题(如果我删除了查询字符串之一,则可以使用)。我要解决的问题是我有一个包含关闭列表的文档(关闭)。我想在条件满足另一个值的闭包列表中搜索一个值。那只是从argan = 1的闭包中获得价值 我正在得到这个错误响应; 我的映射如下所示。 有人知道我在做什么错吗? 问题答案: 您的查询不是有效的查询。您需要使用适当的复合查询将其他
问题内容: 假设我们有两种索引类型:成员和餐厅。两者都包含城市属性。 我想过滤成员(例如按名称),并希望在结果中包括成员所在城市/城市的餐馆名称列表。 是否可以仅使用一个ES查询来执行此操作?我猜它应该类似于数据库联接。 谢谢。 问题答案: ES没有联接的概念。这是因为它是索引而不是关系数据库。最好打两个电话。一个获取会员的文件,然后另一个获取餐厅。 除非您有特殊情况,否则这仍然应该非常有效。
问题内容: 我是Elasticsearch的新手。我正在尝试编写一个查询,该查询将按字段分组并计算总和。在SQL中,我的查询如下所示: 我有在ES中看起来像这样的数据: 我想本质上在ES中运行与SQL中相同的查询,这样我的结果将类似于(当然是json): 问题答案: 在elasticsearch中,您可以通过使用术语stats facet 实现此目的:
也许查询过滤器不正确?(我尝试了几个选项都没有成功) 错误:{“错误”:“SearchPhaseExecutionException[未能执行阶段[query],总失败;shardFailures{[AS6HqxgNRtyU9-pQKhJsXQ][IDX_Cerception][3]:SearchParseException[[IDX_Cerception][3]:From[-1],大小[-1]:
我试图将查询与exclude查询一起使用,以便它匹配除要排除的术语之外的所有术语。我在一个基本的URI查询中找到了它,但不是常规的JSON查询。如何将此URI转换为JSON类型查询? 其中是不匹配的标记列表。 这是我目前所掌握的: 但是,当我这样做时,仍然包含在结果中。如何排除?