在弹性搜索中索引多字段属性

时间:2015-09-25 23:32:06

标签: elasticsearch

我正在尝试重新索引我的文档,以便它们可以排序,这需要使用" raw"来生成可排序的字段多字段属性。未经分析的字符串版本。

我正在关注this文章,但在使用排序查询搜索文档时,我仍然遇到错误。

我有一个关于重新索引数据的问题......如果我将doucments重新索引到这个新索引中,那么我是否需要一些额外的逻辑来设置分析版本和non_analyzed或& #34;生"字符串的版本也是?或者弹性搜索会自动填充那个吗?这是我的领域的样子:

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

所以当我使用_source索引文档时,如:

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

analyzed字段 not_analyzed字段的映射是否完成,或者我还需要做些什么来告诉索引填写" raw"财产也是?

1 个答案:

答案 0 :(得分:3)

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

重新索引文档后,您必须在给定的文档文章中说明查询应使用哪些字段。

原始子字段:

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

或原始分析类型:

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