Json ElasticSearch和auto From中前缀的多个字段以及大小限制
我有两个关于ElasticSearch的问题 1) 第一个问题,我有一个带前缀的查询Json ElasticSearch和auto From中前缀的多个字段以及大小限制,json,lucene,elasticsearch,prefix,Json,Lucene,elasticsearch,Prefix,我有两个关于ElasticSearch的问题 1) 第一个问题,我有一个带前缀的查询 "must": [ { "prefix": { "user": "John" } } ] 通过此查询,我可以在用户字段中添加前缀John,这样就可以在用户字段中找到John所在的文档。现在,我如何进行此查询,以查看John是否在任何用户或电子邮件字段中作为前缀 2) 第二个问题,我知道我们可以在
"must": [
{
"prefix": {
"user": "John"
}
}
]
通过此查询,我可以在用户字段中添加前缀John,这样就可以在用户字段中找到John所在的文档。现在,我如何进行此查询,以查看John是否在任何用户或电子邮件字段中作为前缀
2) 第二个问题,我知道我们可以在ElasticSearch中应用大小和起始值来限制结果,但我想知道的是,我是否必须明确提供大小和起始值,每次在ElasticSearch中查询以继续上一个结果,或者是否有其他方法让ElasticSearch为我执行此操作,我只是查询,它将在上一个结果的基础上给出一系列结果。首先,请注意,
前缀
-查询不进行任何文本分析,因此您不会将例如john
与您的查询进行匹配
您应该研究-query,它也包含-query的选项。因此,您可以将multi\u match
与phrase\u prefix
结合起来,并充分利用两者:多字段匹配和文本分析
下面是一个可以运行的示例:
关于第二个问题,请查看API。greatjob@alexbrasetvik。谢谢你,伙计。它就像魅力一样。但滚动文件中的陈述让我感到困惑“滚动并非用于实时用户请求,而是用于诸如滚动elasticsearch中存在的大部分数据以重新编制索引之类的情况,例如:这意味着什么。我认为我的用户将从不同的机器上进行数千次搜索。那么我该如何实施呢?我可能误解了你的第二个问题。您可能应该坚持使用
size
和from
。它很简单,而且可能非常快。您必须将用户所在的页面从-parameter转换为相应的。好的,Alex,我知道了。非常感谢你的帮助。
#!/bin/bash
export ELASTICSEARCH_ENDPOINT="http://localhost:9200"
# Index documents
curl -XPOST "$ELASTICSEARCH_ENDPOINT/_bulk?refresh=true" -d '
{"index":{"_index":"play","_type":"type"}}
{"user":"John Smith","email":"john.smith@gmail.com"}
{"index":{"_index":"play","_type":"type"}}
{"user":"Alice Smith","email":"john.smith@gmail.com"}
'
# Do searches
curl -XPOST "$ELASTICSEARCH_ENDPOINT/_search?pretty" -d '
{
"query": {
"multi_match": {
"fields": [
"user",
"email"
],
"query": "john",
"operator": "and",
"type": "phrase_prefix"
}
}
}
'