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

elasticsearch查询带有术语列表和术语不起作用的文档

易风华
2023-03-14
    {
        "_index": "test",
        "_type": "historic_participant1",
        "_id": "3",
        "_score": 1,
        "_source": {
           "community": [
              "Cortez",
              "Retail",
              "NetAtmo"
           ],
           "date": "2009-11-10T14:12:12",
           "memberID": 3,
           "validation": "valid",
           "dal_is_installed": true,
           "dal_is_flowing": true,
           "is_flowing_dal_tablet": true,
           "is_flowing_dal_computer": false,
           "is_flowing_dal_smartphone": true,
           "ss_is_installed": true,
           "ss_is_flowing": true,
           "ss_survey_responded_count": 5,
           "dal_mobile_activity_count": 5,
           "dal_tab_activity_count": 5,
           "dal_computer_activity_count": 5,
           "status": "verified"
        }
   "community": {
                  "type": "string"
               },
{
  "query": {
    "term": {
      "community": {
        "value": "Retail"
      }
    }
  }
}

另外,类型中的所有文档都存储了上面提到的community的值。感谢帮助。

共有1个答案

归俊杰
2023-03-14

默认情况下,您使用的是标准分析器,它将输入小写。

查询retail(小写)将产生预期的结果:

curl -XGET localhost:9200/twitter/tweet/_search -d '{
  "query": {
    "term": {
      "community": {
        "value": "retail"
      }
    }
  }
}'

结果:

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.15342641,
    "hits": [
      {
        "_index": "twitter",
        "_type": "tweet",
        "_id": "1",
        "_score": 0.15342641,
        "_source": {
          "community": [
            "Cortez",
            "Retail",
            "NetAtmo"
          ],
          "date": "2009-11-10T14:12:12",
          "memberID": 3,
          "validation": "valid",
          "dal_is_installed": true,
          "dal_is_flowing": true,
          "is_flowing_dal_tablet": true,
          "is_flowing_dal_computer": false,
          "is_flowing_dal_smartphone": true,
          "ss_is_installed": true,
          "ss_is_flowing": true,
          "ss_survey_responded_count": 5,
          "dal_mobile_activity_count": 5,
          "dal_tab_activity_count": 5,
          "dal_computer_activity_count": 5,
          "status": "verified"
        }
      }
    ]
  }
}
 类似资料:
  • 问题内容: 我有两种日志消息: 第一个消息是已发送消息的类型,第二个消息是确认消息已传递的消息。 它们之间的区别是后缀,我已将其与“ id”分开并可以对其进行查询。 这些消息将按以下格式解析并存储在elasticsearch中: 我想找出哪些消息已成功发送,哪些没有成功。我是Elasticsearch的初学者,所以我真的很努力。 我目前正在尝试术语聚合,但是我所能实现的就是以下代码: 向我显示已发

  • 我试图获取缺少字段“topic.description”和匹配项“fundedunder.programme”:“abc”的文档。 映射: 我的查询如下所示:

  • 我有一个带有标签列表的文档: 我有一个术语清单: 我想要一个查询,将返回在术语列表中有标签的文档-但没有其他术语。 因此,给定上面的列表,查询将返回,但不返回(因为它有一个术语不在术语列表中)。 我尝试使用过滤器执行查询,如下所示: 但那没用。 如何创建一个查询,在给定术语列表的情况下,该查询将匹配列表中仅包含术语而不包含其他术语的文档?换句话说,所有文档都应该包含一个标签列表,这些标签是所提供的

  • 问题内容: 我有带有标签列表的文档: 我有一个术语列表: 我想要一个查询,该查询将返回在术语列表中具有标签的文档-但没有其他术语。 因此,鉴于上述列表,查询将返回,但 不会 返回(因为查询中的术语不在术语列表中。) 我尝试使用 过滤器进行查询,如下所示: 但这没有用。 在给定的术语列表的情况下,如何创建一个查询,该查询将匹配仅包含列表中的术语而没有其他术语的文档?换句话说,所有文档都应包含标签列表

  • 我在嵌套文档上合并term,must_not查询时遇到了困难。 Sense示例可以在这里找到:http://Sense.qbox.io/gist/be436a1ffa01e4630a964f48b2d5b3a1ef5fa176 下面是我的映射: 该索引中有两个文档: 你能给我一些解决这个问题的线索吗? 谢谢。

  • 问题内容: 我在为elasticsearch实现自动完成功能时遇到问题,这是我的设置: 创建自动完成的分析器 然后,使用“别名”属性中的分析器在自动完成中创建一个类型: 之后; 添加文档: 当我运行以下命令时: 结果是 和 但是我应该在“别名”字段中获取我的文档,我有一个“ bs as”。 我尝试使用API,并得到了我认为是预期令牌的正确答案: 结果: 有什么提示吗? 编辑: 当我用实际类型运行分