elasticsearch - Elasticsearch 中的“映射”有什么作用?
问题描述
我刚开始学习 Elasticsearch。我正在尝试创建索引、添加数据、删除数据和搜索数据。我也可以理解 Elasticsearch 的设置。
使用“PUT”使用设置时
{
"settings": {
"index.number_of_shards" : 1,
"index.number_of_replicas" : 0
}
}
使用“GET”检索设置信息时
{
"dsm" : {
"settings" : {
"index" : {
"creation_date" : "1555487684262",
"number_of_shards" : "1",
"number_of_replicas" : "0",
"uuid" : "qsSr69OdTuugP2DUwrMh4g",
"version" : {
"created" : "7000099"
},
"provided_name" : "dsm"
}
}
}
}
然而,
Elasticsearch 中的“映射”有什么作用?
{
"kibana_sample_data_flights" : {
"aliases" : { },
"mappings" : {
"properties" : {
"AvgTicketPrice" : {
"type" : "float"
},
"Cancelled" : {
"type" : "boolean"
},
"Carrier" : {
"type" : "keyword"
},
"Dest" : {
"type" : "keyword"
},
"DestAirportID" : {
"type" : "keyword"
},
"DestCityName" : {
}, // just part of data
解决方案
映射文档是一种描述数据结构和定义类型(例如布尔值、文本、关键字)的方式。这些类型很重要,因为它们决定了如何索引和分析您的字段。
Elasticsearch 支持动态映射,因此可以有效地执行对适当类型的自动最佳猜测,但您可能希望覆盖这些。
我发现这是一篇解释映射过程的有用文章: https ://www.elastic.co/blog/found-elasticsearch-mapping-introduction
索引由字段类型确定,例如,当类型为“关键字”时,搜索引擎将期望完全匹配,当类型为“文本”时,搜索引擎将尝试确定文档与查询词的匹配程度,以及这样做将执行“全文搜索”。
例如: - 搜索 jump 也应该匹配 jumped、jumps、jumping,甚至可能是 jump。
这是一篇很棒的文章,描述了精确搜索与全文搜索,我在这里举了一个跳转示例:https ://www.elastic.co/guide/en/elasticsearch/guide/current/_exact_values_versus_full_text.html
elasticsearch 的大部分功能在于映射和分析。
推荐阅读
- c# - C# wpf基于listitem选择绑定tabcontrol
- python - 在一个条件语句中检查多个变量
- heroku - 将前端和后端应用程序部署到 Heroku
- c# - 如何使用主键自动生成更新表中的行
- django-rest-framework - DRF - 在过滤器中,使用字段值而不是默认的 pk / id
- mongodb - Mongodb查询执行时间
- php - 如何使用 TAD 类 php 解决连接问题
- reactjs - How to fix this function to handle different error type of error catching
- php - Recoverable fatal error : Object of class stdClass could not be converted to string in
- javascript - Why is isNan(Nan) returns true, not false?