Elastic Search中的字段属性

我试图重新索引我的文档,以便它们可排序,这需要进行可排序的字段具有未经分析的字符串的“原始”版本的多字段属性。

我正在关注这篇文章,但是在使用排序查询搜索我的文档时仍然出现错误。

那么我有一个关于数据重新索引的问题......如果我将这些数据重新索引到这个新的索引中,那么是否需要额外的逻辑来设置分析版本和非分析版本或“原始”版本的字符串呢? 还是弹性搜索会自动填充那个? 这是我的领域的样子:

{
    "entityName": {
        "type":"string",
        "fields": {
            "raw": {
                "type":"string",
                "index":"not_analyzed"
            }
        }
    }
}

所以当我用如下的_source索引一个文档时:

{
...
"entityName":"Ned Stark"
...
}

将映射到analyzed字段 not_analyzed字段是否完成,或者是否还有其他事情需要我去告诉索引以填充“原始”属性?


不,你不需要做其他事情。

重新索引文档之后,您必须告诉查询应该在给定的文档中使用哪些字段。

原始子字段:

POST /_search
{
    "query": {
        "match": {
            "entityName.raw": "foo-bar"
        }
    }
}

或原始分析类型:

POST /_search
{
    "query": {
        "match": {
            "entityName": "foo-bar"
        }
    }
}
链接地址: http://www.djcxy.com/p/60135.html

上一篇: field property in Elastic Search

下一篇: Adding a field dynamically to search results