【问题标题】:Elasticsearch documents not searchableElasticsearch 文档不可搜索
【发布时间】:2021-05-20 16:13:44
【问题描述】:

我使用以下 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"
    }
  }
}

所有文件都很好地返回了。

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

谢谢!

【问题讨论】:

  • 我没有查文档,但是this SO question表示字段名默认区分大小写。
  • 我都试过了,没有运气。
  • 我在两个不同版本的弹性搜索中尝试了完全相同的命令,并在两者中工作。您能否添加您正在使用的 Elastic 搜索版本以​​及如何将文档插入索引。
  • 谢谢@BaluVyamajala,我发现:这是我插入文档的方式有问题:我在索引之前形成了额外的data层,删除该层后,现在很好。谢谢!

标签: amazon-web-services elasticsearch indexing kibana aws-elasticsearch


【解决方案1】:

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

正如GitHub issue 中提到的,动态设置的 false 选项接受具有不在映射中的字段的文档(即它不会抛出错误),但它不会索引这些字段,因此您不会能够搜索这些字段。

【讨论】:

  • 好的,我已经删除了这一行:"dynamic": "false", 并创建了一个新索引并重试,仍然无法搜索..
  • @FisherCoder 我尝试使用与上述相同的索引映射和搜索查询,在删除 "dynamic": "false" 之后,现在这些字段是可搜索的,就像现在小写的字段映射一样字段也是动态创建的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多