微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Elasticsearch 文档不可搜索

如何解决Elasticsearch 文档不可搜索

我使用以下 PUT 命令通过 AWS Elasticsearch 上的 Kibana 在我的 Elasticsearch 域中创建了一个简单的索引:

PUT sals_poc_test_20210217
{
    "settings" : {
      "index" : {
        "number_of_shards" : 10,"number_of_replicas" : 1,"max_result_window": 50000,"max_rescore_window": 50000
      }
    },"mappings": {
      "dynamic": "false","properties": {
        "ID_NUMBER": {
          "type": "keyword"
        }
        "CLASS_NAME": {
          "type": "keyword"
        }
        "PUBLISHER_ID": {
          "type": "keyword"
        },"INGESTION_DATE": {
          "type": "date","format": "strict_date_optional_time"
        },"DECISION": {
          "type": "keyword"
        },"ID": {
          "type": "keyword"
        }
      }
    }
}

然后我将一个文档放入此索引中:

{
  "id_number" : "guvqlsxz","class_name" : "/TEST_1/sample_1","publisher_id" : "1234","ingestion_date" : "2021-02-12 16:48:57.503665","decision" : "yes","id" : "0958741792"
}

然后我尝试通过上述 6 个字段中的任何一个搜索此文档,但没有一个返回给我此文档。 下面的示例搜索命令:

POST /sals_poc_test_20210217/_search
{
  "query": { 
    "bool": { 
      "filter": [ 
        { "term": { "id_number": "guvqlsxz"}}
      ]
    }
  }
}

但是,当我使用以下命令检索所有内容时:

POST /sals_poc_test_20210217/_search
{
  "query": {
    "match": {
      "_index": "sals_poc_test_20210217"
    }
  }
}

所有文件都很好地返回。

谁能解释为什么按这些索引字段搜索不起作用?

谢谢!

解决方法

您可以在文档和 对象级别。将动态参数设置为 false 会忽略新的 字段,如果 Elasticsearch 遇到 未知领域。

正如 GitHub issue 中提到的,动态设置的 false 选项接受具有不在映射中的字段的文档(即它不会抛出错误),但它不会索引这些字段,所以你赢了'无法搜索这些字段。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?