
# 代码库索引
在码道CLI中，你可以为项目构建索引，来提升AI在代码库中的检索速度与准确度，使结果更贴合你的需求。
#### 代码库索引分类
代码库索引提供了如下两种模式，请结合你的使用场景，自由选择合适的索引构建方式。
- **本地索引** ：通过本地索引构建**图谱索引**，解析本地项目代码文件，精准检索函数、类、文件之间的调用、依赖与继承关系。
- **云端索引** ：借助代码库索引构建**向量索引** ，基于代码语义，实现功能维度的智能检索与精准匹配。**如果你使用的是老套餐（原个人版/体验版/基础版/专业版** **）** 或**新套餐企业版**，请确保账号已启用席位，若席位未启用，会导致云端索引创建失败。
表1本地索引和云端索引功能对比 
| 对比维度 | 本地索引                                   | 云端索引                                                                          |
|:---|:---|:---|
| 存储位置 | 索引文件存储在你的本地设备（当前项目根目录的".codegraph"路径下） | 首次构建索引，完整索引包上传存储至云端；代码变更生成的增量索引，保存在本地设备（当前项目根目录的".codeartsdoer/.codebase"路径下） |
| 搜索能力 | 支持关键词、符号、文件名检索                         | 语义理解，全库代码逻辑分析                                                                 |
| 构建规则 | 通过命令触发                                                                                                                ||
| 更新规则 | 通过命令触发                                                                                                                ||
   
#### 约束与限制
表2约束与限制 
| 限制类别     | 具体限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| 语言       | 支持Java、JavaScript、TypeScript、Go、ArkTS、C、C++、Python、Vue和Lua。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 索引代码文件总数 | - 老套餐 - 体验版≤**5千**个  - 基础版≤**5万**个  - 专业版≤**10万**个    - 新套餐 - 个人体验版≤**5千**个  - 个人标准版/高级版/旗舰版≤**5万**个  - 企业专业版≤**20万**个     |
| 功能限制     | - 仅**老套餐** （**基础版** /**专业版** ）和**新套餐企业版** 支持创建云端**团队级** 和**企业级**代码库索引。  - 本地索引仅支持在**Windows** 、**Linux**系统下创建。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
#### 代码库索引命令清单
 表3代码库索引命令列表 
| 命令（TUI）                 | 命令（CLI）                           | 功能说明                                                                                                                              |
|:---|:---|:---|
| /codebase/init          | codearts codebase --init          | 创建云端索引。                                                                                                                           |
| /codebase/detail        | codearts codebase --detail        | 查看云端索引构建进度。                                                                                                                       |
| /codebase/update        | codearts codebase --update        | 增量更新云端索引。                                                                                                                         |
| /codebase/delete        | codearts codebase --delete        | 删除云端索引。                                                                                                                           |
| /codebase-local/status  | codearts codebase-local --status  | 查看本地索引状态。                                                                                                                         |
| /codebase-local/index   | codearts codebase-local --index   | 启动本地索引构建。                                                                                                                         |
| /codebase-local/sync    | codearts codebase-local --sync    | 增量更新本地索引。                                                                                                                         |
| /codebase-local/disable | codearts codebase-local --disable | 关闭本地索引功能。                                                                                                                         |
| /codebase-local/enable  | codearts codebase-local --enable  | 启用本地索引功能。 说明： 在TUI开发环境中关闭本地索引后，再次启用时，请重启码道CLI。 |
   
#### 构建代码库索引
接下来以TUI开发环境为例，带你一步步完成代码库索引的构建。
1. 进入TUI开发环境。 
   1. 打开目标项目的根目录。
   
   2. 鼠标右键单击空白处，选择"在终端中打开"。
   
   3. 在终端中输入"codearts"并回车，即可进入TUI开发环境。
   
   
   
   
2. （可选）通过配置忽略文件，来指定在构建代码索引时需要剔除的文件。 
   进入项目中的".codeartsdoer"文件夹，打开".codebaseignore"文件，设置你想要忽略的文件。被忽略的文件将完全被排除在代码索引之外，从而有效保护你的敏感数据。
   
   
3. 构建本地索引。 
   1. 在对话框中输入"/"，选择"/codebase-local/index"，开始构建本地索引。
   
   2. 输入命令"/codebase-local/status"，当看到如下页面提示时，表明本地索引已构建完成。
      图1本地索引构建完成   
      ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002723834485.png "点击放大") 
   
   
   
   
4. 构建云端索引。 
   1. 在对话框中输入"/"，选择"/codebase/init"，开始构建云端索引。
   
   2. 输入命令"/codebase/detail"，当看到如下页面提示时，表明云端索引已构建完成。
      图2云端索引构建完成   
      ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002723844861.png "点击放大") 
   
   
   
   
5. 输入你要查找的内容，查看代码检索效果。 
   ```
   探索代码库中所有调用is_input_required的位置，包括跨文件调用关系
   ```
   图3查看检索结果   
   ![](https://support.huaweicloud.com/usermanual-cli/zh-cn_image_0000002680896886.png "点击放大")
   
   
 
