elasticsearch - 有什么方法可以在文档中添加该字段,但对_source隐藏该字段,还应该对文档进行分析和搜索

标签 elasticsearch elasticsearch-6 elasticsearch-mapping

我想在文档中添加一个字段,该字段应该是可搜索的,但是当我们执行get / search时,它不应出现在_source下。

我已经尝试过索引和存储选项,但无法通过它实现。
它更像是_all或copy_to,但在我看来,该值是由我提供的(不是从文档的其他字段收集的)。

我正在寻找可以实现以下情况的映射。

当我放置文件时:

PUT my_index/_doc/1
{
  "title":   "Some short title",
  "date":    "2015-01-01",
  "content": "A very long content field..."
}

并搜索

GET my_index / _search

输出应该是
{
    "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "title" : "Some short title",
          "date" : "2015-01-01"
        }
      }
    ]
  }
}

当我做下面的搜索时
GET my_index/_search
{
  "query": {
    "query_string": {
      "default_field": "content",
      "query": "long content"
    }
  }
}

它应该导致我
"hits" : {
    "total" : 1,
    "max_score" : 0.5753642,
    "hits" : [
      {
        "_index" : "my_index",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 0.5753642,
        "_source" : {
          "title" : "Some short title",
          "date" : "2015-01-01"
        }
      }
    ]
  }

最佳答案

只需使用source filtering排除content字段即可:

GET my_index/_search
{
  "_source": {
    "excludes": [ "content" ]
  },
  "query": {
    "query_string": {
      "default_field": "content",
      "query": "long content"
    }
  }
}

关于elasticsearch - 有什么方法可以在文档中添加该字段,但对_source隐藏该字段,还应该对文档进行分析和搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339289/

相关文章:

node.js - 如何在不使用 Base64 的情况下在 ElasticSearch 中索引二进制文件

python - 带有Python请求的Elasticsearch:msearch请求必须以换行符终止

elasticsearch - Elasticsearch : how to get all data of specific field

sorting - Elasticsearch 按字段排序,如果为空则使用另一个字段

node.js - 在Elasticsearch 6x中何处添加索引缓冲区大小

elasticsearch - 按日期排序+在即将出现的结果之后显示过去的结果

elasticsearch - match_phrase elasticsearch中的可选术语

elasticsearch - ElasticSearch中唯一聚合doc_count的计数

elasticsearch - 在 Elasticsearch 中映射解析器异常

elasticsearch - elasticsearct puttemplate。 [mapper_parsing_exception]根映射定义具有不受支持的参数