当在elasticsearch中搜索时,如果我们搜索在json数组中出现不止一次的单词“brother

enxuqcxy  于 2023-01-25  发布在  ElasticSearch
关注(0)|答案(2)|浏览(197)

那么如果我们编写一个嵌套查询来获取兄弟,那么我们会得到数组或json中出现的两个示例,还是只得到一个示例?
例如,如果我们正在查询单词“brother”,并且它在json数组中出现了两次以上,它会显示brother只出现了一次还是出现了多次?因此,我们正在处理多个文件,我们需要该单词出现的文件ID,如果单个单词在一个文件中出现了一次以上,是否有可能在该单个文件中多次获得该单词?
我试图获得单个文件id不止一次,因为单个文件在多个JSON中不止一次包含这个词,但我只获得了一次文件id ...

yeotifhr

yeotifhr1#

如果你使用kibana sql,你将在每个elasticsearch文档中搜索任何匹配项。如果你按“brother”搜索,你将从每个包含单词“brother”的文档中得到1个匹配项。如果你有3个文档,一个匹配项是你要搜索的单词的3倍,另外2个匹配项各有一次,你将得到3个匹配项。

fdbelqdn

fdbelqdn2#

我们必须在任何编程语言中使用for循环,并且我们只能得到最多3个内命中。我们必须访问json文件并在Python中加载它,例如,然后使用for循环,我们可以有多达3个hits.by这个过程中,我们可以在同一个文件中访问多达3个内命中。代码:-我们可以通过这种方式获取em for i in range(some_value):

try:


    uniq_id = data["hits"]["hits"][i]["_id"]
    start = data["hits"]["hits"][i]["inner_hits"]["key"]["hits"]["hits"][0]["fields"]["key.start"][0]
    check = data["hits"]["hits"][i]["inner_hits"]["key"]["hits"]["total"]["value"]

相关问题