ElasticSearch映射“不工作”v1.1.1

时间:2015-04-23 04:25:41

标签: elasticsearch

我一直在努力解决一个简单的语法问题,试图让基本的ES映射工作。这是版本1.1.1

我有一个能够从头开始创建所有东西的要点:

https://gist.github.com/jrmadsen67/1fc5e296e26e7a5edae0

映射查询是:

PUT /movies/movie/_mapping
{
   "movie": {
      "properties": {
         "director": {
            "type": "multi_field",
            "fields": {
                "director": {"type": "string"},
                "original": {"type" : "string", "index" : "not_analyzed"}
            }
         }
      }
   }
}

我跑了:

curl localhost:9200/movies/movie/_mapping?pretty=true

确认映射实际存在

查询:

POST /movies/movie/_search
{
    "query": {
        "constant_score": {
            "filter": {
                "term": { "director.original": "Francis Ford Coppola" }
            }
        }
    }
}

没有得到任何点击。 {“director”:“francis”}按预期工作。

非常感谢另一组眼睛可以告诉我这有什么问题!

2 个答案:

答案 0 :(得分:0)

与您的文档匹配的当前映射是:

{
    "movie" : {
        "properties" : {
            "director" : {
                "type" : "string"
            },
            "genres" : {
                "type" : "string"
            },
            "title" : {
                "type" : "string"
            },
            "year" : {
                "type" : "long"
            }
        }
    }
}

要匹配您的映射和查询,文档应如下所示:

{
    "director": {
        "director": "Francis Ford Coppola",
        "original": "xxxxxx"
    }
}

答案 1 :(得分:0)

这个问题只不过是在添加映射后重新索引数据的需要。

对于遇到这种麻烦的其他人来说,这是一个很好的演练:

https://www.found.no/foundation/mapping-workflow/