ElasticSearch簡介
Elasticsearch是一個(gè)實(shí)時(shí)分布式搜索和分析引擎。 它讓你以前所未有的速度處理大數(shù)據(jù)成為可能。
它用于全文搜索、結(jié)構(gòu)化搜索、分析以及將這三者混合使用:
使用Java開發(fā)并使用Lucene作為其核心來實(shí)現(xiàn)所有索引和搜索的功能,但是它的目的是通過簡單的RESTful API來隱藏Lucene的復(fù)雜性,從而讓全文搜索變得簡單
ElasticSearch與Solr比較
1、es基本是開箱解壓即用,非常簡單。Solr安裝略微復(fù)雜!
2、Solr 利用Zookeeper進(jìn)行分布式管理,而Elasticsearch自身帶有分布式協(xié)調(diào)管理功能。
3、Solr 支持更多格式的數(shù)據(jù),比如JSON、XML、 CSV ,而Elasticsearch僅支持json文件格式。
4、Solr 官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高級功能多有第三方插件提供,例如圖形化界面需要kibana友好支撐
5、Solr 查詢快,但更新索引時(shí)慢(即插入刪除慢) ,用于電商等查詢多的應(yīng)用;
ES建立索引快(即查詢慢) ,即實(shí)時(shí)性查詢快,用于facebook新浪等搜索。
Solr是傳統(tǒng)搜索應(yīng)用的有力解決方案,但Elasticsearch更適用于新興的實(shí)時(shí)搜索應(yīng)用
Elasticsearch RestHighLevelClient的Request execution cancelled異常
在學(xué)習(xí)ES搭建了一個(gè)springboot服務(wù),集成了Elasticsearch RestHighLevelClient實(shí)現(xiàn)對es的查詢。
發(fā)現(xiàn)只要第二次執(zhí)行插入數(shù)據(jù)方法,就拋出若干Request execution cancelled異常。
ES版本7.6
后來把Client.close() 關(guān)閉注釋掉了。
有個(gè)疑問 Controller 方法調(diào)用完service之后Client 會自動(dòng)關(guān)閉嗎?
修改索引分詞器
原因:
索引為配置中文分詞器(默認(rèn)使用standard,即所有中文字符串都會被切分為單個(gè)中文漢字作為單詞),所以沒有超過1個(gè)漢字的詞,也就無法匹配,進(jìn)而查不到數(shù)據(jù)。
操作索引必須在創(chuàng)建前或者索引關(guān)閉后!
#關(guān)閉
POST 索引名/_close
#修改
PUT 索引名/_settings
{
"analysis": {
"analyzer": { # 定制化分析器
"字段名稱": {
"type": "ik_max_word", # 要更換的分詞器名字 默認(rèn)為standard
"stopwords": "_english_" #_english_為默認(rèn)的英語停止詞集
}
}
}
}
GET 索引名 # 查看索引信息
#打開
POST 索引名/_open
查詢不到數(shù)據(jù)
是因?yàn)樗饕械淖侄蚊Q沒對上文章來源:http://www.zghlxwxcb.cn/news/detail-731399.html
GET /test3/_doc/_search
{
"query":{
"match":{
"name":"張" # 竟然是字段名稱沒對上!?。?/span>
}
}
,
"_source": ["name","desc"] #查詢結(jié)果只顯示那些
,
"sort": [
{
"age": { #排序
"order": "asc"
}
}
]
,
"from": 0 #分頁
,
"size": 10
}
感謝狂神,資料來源
https://www.kuangstudy.com/bbs/1354069127022583809文章來源地址http://www.zghlxwxcb.cn/news/detail-731399.html
到了這里,關(guān)于初學(xué)Elasticsearch遇到的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!