熟悉Lucene也比较久了,最近想了解一下ElasticSearch的原理以及简单的使用一下。
代码如下:
try { XContentBuilder mapping = XContentFactory.jsonBuilder().startObject().startObject("xivaik").startObject("properties").startObject("ajmc").field("type", "string") .field("store", "yes").endObject().startObject("ajbh").field("type", "string").field("store", "yes").field("index", "not_analyzed").endObject() .startObject("jyaq").field("type", "string").field("indexAnalyzer", "ik").field("searchAnalyzer", "ik").field("index", "analyzed").endObject() .startObject("addDate").field("type", "date").endObject().endObject().endObject().endObject(); PutMappingRequest mappingRequest = Requests.putMappingRequest("xivaik").type("infoaj").source(mapping); client.admin().indices().putMapping(mappingRequest).actionGet(); } catch (IOException e) { e.printStackTrace(); }
执行时,结果报错Root type mapping not empty after parsing!
后来看到这个帖子,给我一点启发。
I removed the "mappings" json object and it fixed the issue.
应该是我在构建mappingRequest 出现了节点重复构造。
我本想构造的信息是:
{"xivaik":{"properties":{"ajmc":{"type":"string","store":"yes"},"ajbh":{"type":"string","store":"yes","index":"not_analyzed"},"jyaq":{"type":"string","indexAnalyzer":"ik","searchAnalyzer":"ik","index":"analyzed"},"addDate":{"type":"date"}}}}
可以看得出,startObject("xivaik")已经将我的索引xivaik添加到了结构信息中,但是Requests.putMappingRequest("xivaik").type("infoaj")中又指定了索引xivaik,我想是不是重复了。
去掉.putMappingRequest("xivaik")是不可能的,所以我将构建结构的语句中去掉startObject("xivaik"),结果成功执行。
try { XContentBuilder mapping = XContentFactory.jsonBuilder().startObject().startObject("properties").startObject("ajmc").field("type", "string") .field("store", "yes").endObject().startObject("ajbh").field("type", "string").field("store", "yes").field("index", "not_analyzed").endObject() .startObject("jyaq").field("type", "string").field("indexAnalyzer", "ik").field("searchAnalyzer", "ik").field("index", "analyzed").endObject() .startObject("addDate").field("type", "date").endObject().endObject().endObject(); PutMappingRequest mappingRequest = Requests.putMappingRequest("xivaik").type("infoaj").source(mapping); client.admin().indices().putMapping(mappingRequest).actionGet(); } catch (IOException e) { e.printStackTrace(); }
结果证明了前面的猜测。希望能够后来人一个参考。
相关推荐
以上内容涵盖了SpringBoot1.3.1与Elasticsearch1.7.3集群的关键知识点,包括集成方式、操作流程、查询机制、集群管理和性能优化等方面。通过理解并熟练掌握这些概念,可以有效地在SpringBoot应用中构建和使用Elastic...
Elasticsearch 1.7.3 是一个早期版本的全文搜索和分析引擎,它属于Elastic Stack(前称为ELK stack)的一部分,其中包括Elasticsearch、Logstash、Kibana和Beats。这个版本的发布旨在提供高效、可扩展的搜索、日志...
**Elasticsearch 1.7.0:搜索与分析引擎的里程碑版本** Elasticsearch,一个基于Lucene的开源搜索引擎,以其分布式、实时、可扩展的特性在IT领域备受推崇。1.7.0版是1.x系列的最终版本,标志着这一系列的成熟与稳定...
### mybatisMapped报错 Statements collection does not contain value for 在使用MyBatis框架进行数据库操作时,可能会遇到“Mapped Statements collection does not contain value for”这样的错误提示。这通常...
JAVA使用ElasticSearch查询in和not in的实现方式 Elasticsearch是一个基于Lucene的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它是用Java开发的,并作为Apache许可条款下的开放...
**Elasticsearch 1.7.1:一个早期版本的分布式搜索引擎** Elasticsearch是一个开源的、基于Lucene的全文搜索引擎,它以分布式、实时、弹性(Fault Tolerant)和横向扩展为特点,被广泛应用于日志分析、监控、搜索、...
**Elasticsearch 1.7.1:搜索引擎的基石** Elasticsearch 是一款高度可扩展的开源全文搜索引擎,设计目标是实现快速、可扩展的搜索和分析引擎。它基于 Lucene 库,提供了分布式、多租户功能,适用于各种数据类型,...
而标题中提到的"一款基于Java注解的elasticsearch mapping生成工具",正是针对这一需求,为开发者提供了一种简洁且高效的方式来创建和管理ES的映射。 **Java注解与Elasticsearch Mapping** Java注解是一种元数据,...
使用Docker run 命令 docker run -d -p 9200:9200 -p 9300:9300 –name 用户自定义名字 容器ID 会看到一串字符串,一般情况下我们会误以为它启动成功 我们执行docker ps -a是发现它自动退出了 ...
Elasticsearch 子项目:服务器 org.elasticsearch/elasticsearch/1.7.3/elasticsearch-1.7.3.jar
报错信息提示"can not run elasticsearch as root",意味着在尝试用root用户启动Elasticsearch服务,但这是不被允许的。 自Elasticsearch 6.x版本开始,出于安全性考虑,官方明确禁止以root用户身份运行Elastic...
6. 重启服务器,因为Elasticsearch的安全策略,不应以root用户启动,所以创建新用户,给予Elasticsearch目录权限,并用新用户启动Elasticsearch,通过 `./elasticsearch` 命令。 7. 通过 `...
1. **解压源码**:首先,将 "elasticsearch-head-compile-after.tar.gz" 解压到你的工作目录,例如 `tar -zxvf elasticsearch-head-compile-after.tar.gz`。 2. **运行elasticsearch-head**:解压后,找到包含 ...
标签"es5.6 安装包 root启动"进一步强调了这个安装包的特性,即它专为Elasticsearch 5.6.5版本设计,并且重点在于允许root用户的启动功能。这使得在没有其他非root用户账户或者需要快速部署的情况下非常有用。 ...
标题中的"elasticsearch-head-compile-after.tar.gz"和"node-v8.1.2-linux-x64.ta"分别指的是两个不同的软件组件。首先,Elasticsearch是一个流行的开源搜索引擎和分析平台,广泛应用于大数据检索、日志分析和实时...
在搭建 Elasticsearch 服务时,可能会遇到一系列报错问题,这些错误通常与系统资源限制、配置不当或权限不足有关。在 CentOS7 上安装 Elasticsearch 时,常见的问题和解决方案如下: 1. **内存分配失败**: 报错...
ES常见启动报错解决办法汇总
arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...
vscode 报错之 Could not read source map for file... 解决方案