当前位置: 首页 > 知识库问答 >
问题:

弹性搜索中特定字段的过滤查询

龙承德
2023-03-14

我有一份这样的文件

  {
    _index: "logstash-2015.11.30",
    _type: "hadoopgeneric",
    _id: "AVFVsF6ypMu_z_qvIUgL",
    _score: null,
    _source: {
             @timestamp: "2015-11-30T00:00:00.017Z",
             message: "selector : 48 - Element found for using multiple selectors using query .js-product-brand.product-brand",
             @version: "1",
             host: "ip-x-x-x-x",
             path: "/logs/stats/container/application_1448508514184_0178/container_e06_1448508514184_0178_01_003568/stderr",
             type: "hadoopgeneric",
             thread_id: "15119",
             thread_name: "MainThread",
             component_name: "Page",
             severity: "DEBUG",
             env: "STG",
             role: "spider",
             ip: "x.x.x.x",
             tags: [
                 "processed"
             ]
            },
   }

下面是我到目前为止所尝试的

esurl = http://localhost:9200/logstash-*/_search
r = requests.post(esurl,data={"term":{'path':'/logs/stats/container/application_1448508514184_0178/container_e06_1448508514184_0178_01_003568/stderr'}})
r.text

{“错误”:“SearchPhaseExecutionException[未能执行阶段[query],所有碎片失败;shardFailures{[5D_RNDQPRF6XYLO1SUIOCA][LogStash-2015.11.30][0]:RemoteTransportException[[ip-x-x-x-x-elkstorage][Inet[/X.X.X.X:9300]][索引:数据/读取/搜索[phase/query]]];嵌套:SearchParseException[[LogStash-2015.11.30][0]:From[-1],size[-1]:解析VE xcontent];}{[o8jLb8P5SWOfsCo78eUlHg][LogStash-2015.12.01][0]:RemoteTransportException[[IP-X-X-X-X-X-ELKStorage][Inet[/X.X.X:9300]][Indexes:Data/Read/Search[phase/query]]];嵌套:SearchParseException[[LogStash-2015.12.01][0]:From[-1],size[-1]:解析失败[未能解析源[_NA_]]];嵌套:


共有1个答案

宗乐池
2023-03-14

q参数似乎是错误的(字符位于错误的位置),请尝试以下操作:

http://localhost:9200/logstash-*/_search?pretty=true&q=path:"/logs/stats/container/application_1448508514184_0178/container_e06_1448508514184_0178_01_003568/stderr"&sort=@timestamp&size=100000

另一方面,术语query是有效的,但它必须在query键中,类似于:

import requests
import json

esurl = "http://localhost:9200/logstash-*/_search"
r = requests.post(esurl,data=json.dumps({"query": {"term":{'path':'/logs/stats/container/application_1448508514184_0178/container_e06_1448508514184_0178_01_003568/stderr'}}}))
r.text
 类似资料:
  • 我正在使用以下搜索: 我现在想使用弹性搜索在索引过程中提供的id ()来过滤结果。例如,{}。我猜你得用查询这个词。结果应该是只有当< code>_id匹配时,文档才返回。我该怎么做呢?

  • 我有一堆像下面这样的文件。我想过滤projectkey以~开头的数据。我确实读过一些文章,其中说~是弹性查询中的一个运算符,因此无法真正使用它进行过滤。有人能帮你建立搜索查询/branch/u搜索API吗?? 更新*** 我在下面使用prerana的答案在我的查询中使用-prefix 当我使用前缀和范围时仍然有问题-我得到以下错误-我缺少什么??

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 作为参考,我使用的是Elasticsearch 6.4.0 我有一个Elasticsearch查询,它返回一定的命中视频数,我正在尝试删除文本字段值过于相似的命中。我的查询是: 此查询使用自定义函数分数和筛选器来返回用户可能喜欢的书籍(他们尚未创作的书籍)。对于某些人来说,它返回的名字非常相似的书(即乔治·华盛顿的一生,乔治·华盛顿的美好时光,谁是乔治·华盛顿),我希望热门歌曲有一套更多样化的名字

  • 我试图为一个业务场景制定一个查询,其中我们有一个名为“types”的嵌套字段类型(即类似于字符串的ArrayList)。下面是以“类型”作为字段之一的索引文档示例。 文件1:{“类型”:[{“标签”:“对话”,},{“标签”:“暴力”,},{“标签”:“语言”,}} 文档2:{“类型”:[{“标签”:“对话框”,}} 现在,要求搜索查询最多匹配字段值中的一个值,即如果用户搜索“对话框”,那么它应该

  • 在Udemy教程中,我在这里遇到了这个查询: 我想知道是否有可能优化它?我在想两种可能的方法: > 将“流派”放入筛选器上下文中。但是一部电影可能有多种类型,所以我不确定使用type关键字和filter-term是否能在那里工作。 直接将“must_not”放在过滤器上下文中(没有bool)是行不通的,因为据我所知,过滤器不允许“过滤掉”,只允许“过滤保留什么”。但是如果我将must_not包装在