ElasticSearch简介
Elasticsearch是一个实时分布式搜索和分析引擎。 它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单
ElasticSearch与Solr比较
1、es基本是开箱解压即用,非常简单。Solr安装略微复杂!
2、Solr 利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。
3、Solr 支持更多格式的数据,比如JSON、XML、 CSV ,而Elasticsearch仅支持json文件格式。
4、Solr 官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibana友好支撑
5、Solr 查询快,但更新索引时慢(即插入删除慢) ,用于电商等查询多的应用;
ES建立索引快(即查询慢) ,即实时性查询快,用于facebook新浪等搜索。
Solr是传统搜索应用的有力解决方案,但Elasticsearch更适用于新兴的实时搜索应用
Elasticsearch RestHighLevelClient的Request execution cancelled异常
在学习ES搭建了一个springboot服务,集成了Elasticsearch RestHighLevelClient实现对es的查询。
发现只要第二次执行插入数据方法,就抛出若干Request execution cancelled异常。
ES版本7.6
后来把Client.close() 关闭注释掉了。
有个疑问 Controller 方法调用完service之后Client 会自动关闭吗?
修改索引分词器
原因:
索引为配置中文分词器(默认使用standard,即所有中文字符串都会被切分为单个中文汉字作为单词),所以没有超过1个汉字的词,也就无法匹配,进而查不到数据。
操作索引必须在创建前或者索引关闭后!
#关闭
POST 索引名/_close
#修改
PUT 索引名/_settings
{
"analysis": {
"analyzer": { # 定制化分析器
"字段名称": {
"type": "ik_max_word", # 要更换的分词器名字 默认为standard
"stopwords": "_english_" #_english_为默认的英语停止词集
}
}
}
}
GET 索引名 # 查看索引信息
#打开
POST 索引名/_open
查询不到数据
是因为索引中的字段名称没对上文章来源:https://www.toymoban.com/news/detail-731399.html
GET /test3/_doc/_search
{
"query":{
"match":{
"name":"张" # 竟然是字段名称没对上!!!
}
}
,
"_source": ["name","desc"] #查询结果只显示那些
,
"sort": [
{
"age": { #排序
"order": "asc"
}
}
]
,
"from": 0 #分页
,
"size": 10
}
感谢狂神,资料来源
https://www.kuangstudy.com/bbs/1354069127022583809文章来源地址https://www.toymoban.com/news/detail-731399.html
到了这里,关于初学Elasticsearch遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!