【问题标题】:Specifying data type and analyzer while creating index创建索引时指定数据类型和分析器
【发布时间】:2016-02-16 21:15:10
【问题描述】:

我正在使用弹性搜索来索引我的数据,并且我能够通过以下 POST 请求来做到这一点 http://localhost:9200/index/type/id { JSON数据在这里 }

昨天,当我浏览一些弹性教程时,我发现有人提到将分析器设置为我们计划进行全文搜索的那些字段。我在谷歌搜索期间发现映射 API 可用于更新数据类型和分析器,但在我的情况下,我想在创建索引时这样做。

我该怎么做?

【问题讨论】:

  • 创建索引时可以在设置中指定分析器。
  • 我可以给分析器的数据类型以及同一请求中的数据吗?如果是这样,您能否提供一个示例或包含一个的 URL

标签: elasticsearch


【解决方案1】:

您可以在第一个请求中使用自定义设置(和映射)创建索引,然后在第二个请求中为您的数据建立索引。在这种情况下,您不能同时进行这两项操作。

但是,如果您首先索引数据并且索引尚不存在,它将使用默认设置自动创建。然后您可以更新您的映射。

来源:Index

【讨论】:

  • 我只是在想,这可能是我实现上述场景的唯一可能性。感谢您澄清 Primoz。
  • 所以我通过提及映射来创建索引,然后插入数据对吗?
  • curl -XPOST localhost:9200/test -d '{ "settings" : { "number_of_shards" : 1 }, "mappings" : { "type1" : { "properties" : { "field1" : { "type" : "string", "index" : "not_analyzed" } } } } } 从上面的代码中,我们正在创建一个索引测试,type1 是类型,它具有数据类型 string 的列 field1,索引为 not_analyzed 如何我可以根据类型指定映射吗?
  • 因为从 UI 的角度来看,我会选择一个特定的类型,比如客户并点击索引按钮,我必须从另一个数据库中获取数据,如果不存在则创建类型并推送数据,在推送之前我需要设置分析了我必须进行全文搜索的所有字段
  • 我想我找到了答案。将请求正文作为 { "properties": { "zip": { "type": "string", "index" : "not_analyzed" } } } 使用 PUT 方法和 URL 作为 localhost:9200/indexName/_mapping/typeName 。有什么不对的地方请指正
猜你喜欢
  • 2013-08-16
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
相关资源
最近更新 更多