马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Gitee链接地址,发起收藏,后续我会对专栏进行整理,每篇文章进行校正和调整,然后同一存放在gitee仓库中
1. Elasticsearch的根本架构是什么?
答案:
Elasticsearch的根本架构包括以下几个主要组件:
- Node:一个Elasticsearch实例,可以是集群的一部门。
- Cluster:一组节点,协同工作以提供扩展性和高可用性。
- Index:文档的聚集,类似于关系数据库中的表。
- Type:已废弃的概念,从前用于表现索引中的差别文档范例。
- Document:索引中的根本单元,类似于关系数据库中的行。
- Shard:索引的物理划分,每个索引可以有多个分片。
- Replica:分片的副本,用于进步可用性和查询性能。
2. Elasticsearch中的Shard和Replica是如何工作的?
答案:
- Shard:每个索引可以分为多个分片,每个分片是一个独立的Lucene索引。分片可以分布在整个集群的节点上,实现水平扩展。
- Replica:每个分片可以有多个副本,副本用于进步可用性和查询性能。如果主分片不可用,副本可以提拔为主分片。
- 作用:分片用于扩展存储和查询能力,副本用于进步可用性和读取性能。
3. Elasticsearch中的文档是如何存储的?
答案:
- 倒排索引:Elasticsearch使用倒排索引存储文档,倒排索引将文档中的词映射到包含这些词的文档列表。
- 字段存储:文档的原始内容可以存储在字段中,用于检索和显示。
- 分词器:文档在存储前会被分词器处理,生成词条,用于构建倒排索引。
4. Elasticsearch中的索引是如何创建的?
答案:
- API:通过REST API或客户端库创建索引。
- 映射:创建索引时可以指定映射(mapping),定义字段的数据范例和属性。
- 设置:可以设置索引的分片数和副本数等属性。
示例代码:
- PUT /my-index
- {
-
- "settings": {
-
- "number_of_shards": 3,
- "number_of_replicas": 2
- },
- "mappings": {
-
- "properties": {
-
- "title": {
- "type": "text" },
- "date": {
- "type": "date" }
- }
- }
- }
复制代码 5. Elasticsearch中的搜刮是如何工作的?
答案:
- 查询解析:查询请求被解析成内部查询结构。
- 分片查询:查询请求被分发到所有相关的分片。
- 结果合并:每个分片返回的结果被合并,生成最终的搜刮结果。
- 评分:使用TF-IDF等算法对文档进行评分,按评分排序。
6. Elasticsearch中的聚合是如何工作的?
答案:
- 聚合:聚合操作用于对搜刮结果进行统计分析,如计数、求和、平均值等。
- 分片聚合:聚合操作在每个分片上独立实行,结果被合并。
- 桶和度量:聚合可以分为桶聚合(如terms、range)和度量聚合(如avg、sum)。
示例代码:
- GET /my-index/_search
- {
-
- "size": 0,
- "aggs": {
-
- "by_category": {
-
- "terms": {
-
- "field": "category"
- }
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |