如何使用NEST在elasticsearch中创建多字段映射

时间:2014-08-24 03:33:59

标签: .net elasticsearch nest elasticsearch-net

我正在关注弹性搜索here的教程。它不是.NET,但我已经能够完全遵循使用NEST讨论的所有内容。我已经了解了有关映射的部分,我不知道如何使用NEST来表示下面的请求

curl -XPUT "http://localhost:9200/movies/movie/_mapping" -d'
{
   "movie": {
      "properties": {
         "director": {
            "type": "multi_field",
            "fields": {
                "director": {"type": "string"},
                "original": {"type" : "string", "index" : "not_analyzed"}
            }
         }
      }
   }
}'

我已经检查过各处的解决方案,而我能得到的最接近的是stack overflow question

我如何实现这一目标? 我还将欣赏完整初学者到弹性搜索网站的链接,我可以参考这个例子。

1 个答案:

答案 0 :(得分:1)

NEST与Mappings相关的最佳示例/文档是在源代码FluentMappingFullExampleTests.cs

中查看此文件

以该文件为例,如果您在项目中声明了相应的Movie类,则可以执行以下操作

 var result = this._client.Map<Movie>(m => m
     .Properties(props => props
        .MultiField(s => s
            .Name(p => p.Name)
            .Fields(pprops => pprops
                        .String(ps => ps.Name(p => p.Name).Index(FieldIndexOption.Analyzed))
                        .String(ps => ps.Name("original").Index(FieldIndexOption.NotAnalyzed))
                )
             )
         )
     )