# 索引创建

### **创建示例** 

##### **使用 copyTO** 

### 优点：

- **查询简单**：只需要搜索一个字段 `all_fields`
- **维护方便**：新增字段时只需添加 `copy_to` 配置
- **性能优化**：单个字段的倒排索引，查询效率较高
- **权重统一**：所有字段在搜索时权重相同

### 缺点：

- **存储开销**：数据会被复制，存储空间增加
- **灵活性差**：无法为不同字段设置不同的分词策略
- **无法区分字段权重**：所有字段在搜索时重要性相同
- **字段信息丢失**：无法知道匹配的是哪个具体字段

## 2. 不使用 `copy_to` 的方式（多字段搜索）

### 优点：

- **存储效率**：无数据复制，节省存储空间
- **灵活性高**：可以为不同字段设置不同的分词器
- **权重控制**：可以调整不同字段的搜索权重
- **字段级信息**：可以知道匹配的具体字段，便于结果展示和排序

### 缺点：

- **查询复杂**：需要使用 `multi_match` 查询多个字段
- **性能开销**：同时查询多个字段可能比单个字段稍慢
- **维护成本**：新增搜索字段需要修改查询逻辑

```json
PUT /document_index
{
  "settings": { // 分词配置
    "analysis": {
      "analyzer": {
        "ik_smart_analyzer": {
          "type": "custom",
          "tokenizer": "ik_smart"
        },
        "ik_max_analyzer": {
          "type": "custom", 
          "tokenizer": "ik_max_word"
        }
      }
    },
    "index": { // 分片配置
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  },
  "mappings": { // 具体的字段配置
    "properties": {
      "id": {
        "type": "long",
        "copy_to": "all_fields"  // 复制到全字段
      },
      "page": {
        "type": "integer",
        "copy_to": "all_fields"  // 复制到全字段
      },
      "text": {
        "type": "text",
        "analyzer": "ik_max_analyzer",
        "search_analyzer": "ik_smart_analyzer",
        "copy_to": "all_fields"  // 复制到全字段
      },
      "all_fields": {
        "type": "text",
        "analyzer": "ik_max_analyzer",
        "search_analyzer": "ik_smart_analyzer"
      }
    }
  }
}
```