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

如何读取分面搜索查询的JSON输出?

蒋招
2023-03-14

我有属于一个类型的电影,有多个评级。使用ElasticSearch,我想首先对流派进行分面搜索,然后是收视率。

我在这里看到了这个想法:http://www.elasticsearch.org/guide/reference/api/search/facets/

但是我很困惑如何理解这个Curl查询的输出:

curl -X POST "http://localhost:9200/movies/_search?pretty=true" -d '
 {
    "query" : { "query_string" : {"query" : "T*"} },
    "facets" : {
      "categories" : { "terms" : {"field" : "categories"} }
    }
  }
'
{
  "took" : 35,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 3,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "movies",
      "_type" : "movie",
      "_id" : "13",
      "_score" : 1.0, "_source" : {"category_id":2,"created_at":"2013-05-03T16:40:21Z","description":null,"title":"Tiny Plastic Men","updated_at":"2013-05-03T16:40:21Z","user_id":null}
    }, {
      "_index" : "movies",
      "_type" : "movie",
      "_id" : "32",
      "_score" : 1.0, "_source" : {"category_id":14,"created_at":"2013-05-03T16:55:02Z","description":null,"title":"The Extreme Truth","updated_at":"2013-05-03T16:55:02Z","user_id":null}
    }, {
      "_index" : "movies",
      "_type" : "movie",
      "_id" : "39",
      "_score" : 1.0, "_source" : {"category_id":7,"created_at":"2013-05-03T16:55:02Z","description":null,"title":"A Time of Day","updated_at":"2013-05-03T16:55:02Z","user_id":null}
    } ]
  },
  "facets" : {
    "categories" : {
      "_type" : "terms",
      "missing" : 3,
      "total" : 0,
      "other" : 0,
      "terms" : [ ]
    }
  }

我有一些电影以'T'开头,但另外我会期待电影的类型/类别‘惊悚片’。

共有1个答案

樊胜
2023-03-14

您的方面似乎与文档中应该使用的任何字段都不匹配:

curl -X POST "http://localhost:9200/movies/_search?pretty=true" -d '
 {
    "query" : { "query_string" : {"query" : "T*"} },
    "facets" : {
      "categories" : { "terms" : {"field" : "category_id"} }
    }
  }
'

那么您将获得category_id的列表和每个category_id中的文档计数

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

  • 我的任务是使用lucene在我们的产品表中搜索。我已经创建了一个索引,正在使用带有多个字段的QueryParser进行搜索,但结果不是我所需要的。我有一个存储为LM10的产品,但如果搜索词是LM 10,我希望能够找到它,但如果搜索词是Fred LM10或Fred LM 10,它也必须能够匹配。你知道我如何在Lucene做到这一点吗。 提前谢谢

  • 问题内容: 我想构建一个由Instagram照片驱动的小型“即时图片搜索”应用。就像Google Instant,您可以在其中开始键入内容,并且在键入更多字母时显示/更新结果。 您可以看到由Google图片提供支持的实时演示应用。我知道使用大型引擎(Google,Yahoo!,Bing)是可行的,但我不知道Instagram是否允许这样做。任何熟悉API的人都可以提供帮助吗? 如果无法通过有意义的

  • 问题内容: 有谁知道如何使用Postgres 7.4进行不区分大小写的搜索/查询? 我在考虑RegEx,但不确定如何执行此操作,或者不确定是否有函数/标志或可以添加查询的内容? 我正在使用PHP连接并执行查询。 因此,我正在寻找匹配地址信息的方法。 例子: 有什么想法吗? 问题答案: 使用,例如: 文件资料。 或者,您可以使用或,例如:

  • 我需要在elasticsearch中编写搜索查询,数据如下 场景:-用户想要搜索与p2相关的人,并使用每个相关的人找到他们与谁相关 1.首先找到与p2答案=p1相关的人。现在找到与p1答案=p3相关的人。(目前的要求是只进行1级),因此不需要找到与p3相关的人。最终结果应该是p2,p1,p3。 正常场景的我们将编写一个嵌套sql来获得结果。我们如何使用弹性查询语言一次性实现这一点

  • 我是Elasticsearch的新手,我面临一个问题。我的任务是搜索一组文档。例如,我有这样结构的数据: 但是困难的是,我如何获取所有带有project_id=abc的文档,然后通过与关键字“测试”匹配的任何其他字段(代码、名称、状态)搜索它们(例如)。我如何在Elasticsearch查询中做到这一点,请帮助我! 谢谢