Elasticsearch 操作指南:创建索引与更新文档

需积分: 9 2 下载量 125 浏览量 更新于2024-09-10 收藏 3KB TXT 举报
"我的第一部小说", "public_date":"2022-06-0110:00:00" } "es操作.txt" 文件涉及到的是Elasticsearch(简称ES)的相关操作,Elasticsearch 是一个开源的分布式全文搜索引擎,常用于大数据分析和实时搜索。以下是对文件内容的详细解释: 1. **映射(Mappings)**:在ES中,映射定义了索引中字段的数据类型,类似于传统数据库中的数据模式。例如,`PUT book` 创建了一个名为 "book" 的索引,并定义了 "novel" 类型的文档结构,其中 "title" 字段被设置为 "text" 类型,适合全文搜索。 2. **设置(Settings)**:`PUT people` 命令创建了 "people" 索引,并设置了分片数量(shards)为3,副本数量(replicas)为1,这提供了数据冗余和分布式的处理能力。 3. **文档(Documents)**:文档是存储在ES中的基本单元,可以通过 `PUT` 或 `POST` 方法插入。例如,`PUT people/man/1` 插入了一个ID为1的 "man" 类型文档,包含 "name", "age", "country" 和 "date" 字段。日期字段的格式可以是多种,支持 "yyyy-MM-ddHH:mm:ss" 或 "yyyy-MM-dd" 以及 Unix 时间戳(epoch_millis)。 4. **更新文档(_update)**:`POST /people/man/1/_update` 更新了ID为1的 "man" 文档,通过 "doc" 参数传递新的字段值。在这里,只更新了 "name" 为 "xiugai"。 5. **添加新字段(Adding New Fields)**:`PUT book` 更新了 "book" 索引的映射,添加了 "word_count" 为 "integer" 类型和 "public_date" 为 "date" 类型的新字段,同样允许多种日期格式。 6. **keyword与text类型**:"keyword" 类型用于精确匹配,不进行分词,适用于如分类、标签等场景。而 "text" 类型则用于全文搜索,会进行分词处理,适合长文本内容。 7. **插入文档示例**:`PUT book/novel/1` 插入了一条 "novel" 类型的文档,包含 "word_count", "author", "title" 和 "public_date" 字段,展示了如何实际插入文档到特定类型和ID下。 通过这些操作,我们可以看到Elasticsearch如何处理索引创建、文档的增删改查以及映射的定义和更新,这些都是ES日常管理和操作的核心部分。对于数据分析、日志存储和搜索应用来说,这些知识是至关重要的。

解释一下 GLES20.glClearColor(0.0f, 0.0f, 0.0f, Vuforia.requiresAlpha() ? 0.0f : 1.0f); for (Texture t : mTextures) { GLES20.glGenTextures(1, t.mTextureID, 0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, t.mTextureID[0]); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR); GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, t.mWidth, t.mHeight, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, t.mData); } shaderProgramID = SampleUtils.createProgramFromShaderSrc( CubeShaders.CUBE_MESH_VERTEX_SHADER, CubeShaders.CUBE_MESH_FRAGMENT_SHADER); vertexHandle = GLES20.glGetAttribLocation(shaderProgramID, "vertexPosition"); // textureCoordHandle = GLES20.glGetAttribLocation(shaderProgramID, // "vertexTexCoord"); mVColorCenterHandler = GLES20.glGetUniformLocation(shaderProgramID, "vColorCenter"); mvpMatrixHandle = GLES20.glGetUniformLocation(shaderProgramID, "modelViewProjectionMatrix"); texSampler2DHandle = GLES20.glGetUniformLocation(shaderProgramID, "texSampler2D"); if(!mModelIsLoaded) { mTeapot = new Teapot(); mxyz1 = new xyz1(); try { mBuildingsModel = new SampleApplication3DModel(); mBuildingsModel.loadModel(mActivityRef.get().getResources().getAssets(), "ImageTargets/Buildings.txt"); mModelIsLoaded = true; } catch (IOException e) { Log.e(LOGTAG, "Unable to load buildings"); } // Hide the Loading Dialog mActivityRef.get().loadingDialogHandler .sendEmptyMessage(LoadingDialogHandler.HIDE_LOADING_DIALOG); } }

2023-06-03 上传