SlideShare a Scribd company logo
第一次Elasticsearch就上手
By Jaja
其實原本是要用Azure Search的
直到我膝蓋中了一箭
Azure Search只
有後綴能用*
http://ppt.cc/4jzq
先介紹Elasticsearch的概念
名詞比對
Relational DB ElasticSearch
Database Index
Table Type
Row Document
Column Field
Schema Mapping
初探 Elasticsearch 分散式搜尋與分析系統-洪名辰
剛開始以為Elasticsearch資源非常的多
實際上
http://ppt.cc/U9tY
身為一名工程師絕對不能放棄
http://ppt.cc/JAJW
其實Elasticsearch很簡單
•Query-DSL
•Document APIs
•解決空白
• Analyzers 字詞剖析器
Document APIs
•用來塞資料給Elasticsearch吃的
看起來有這麼多,今天我們就
建立單一文件
取得單一文件
更新單一文件
刪除單一文件
取得多個文件
批次文件操作
Bulk UDP has been deprecated and will be removed in Elasticsearch 2.0
批次刪除文件操作
只講重點
第一眼覺得應該蠻簡單的
只看一眼是不夠的
最後一行記得加上換行符號不是加n
手動測試,貼上時
更要注意換行符號是否遺漏
膝蓋中了第一箭…
Bulk API
JSON格式分為Action跟Source Content
Action
Source Content
每一行代表一個JSON內容
感覺好像很複雜
只要默記心法
ACTION + SOURCE 再送出
ACTION : 一定是第一段的JSON,代表我要做什麼事 (EX:CURD)
ACTION + SOURCE 再送出
SOURCE : 一定是第二段的JSON,代表要操作的內容
Review
ACTION
Review
Index Name
Review
Type Name
Review
Doc PrimaryKey
Review
ColumnName &Value
Action其實有這麼多
其實用這個就好了
Bulk上
傳資料
寫Query
DSL
查詢完
畢
剛剛介紹到現在,你可能會覺得是
咦!中間是不是跳過什麼了?
定義
Schema
Bulk上
傳資料
寫
Query
DSL
查詢完
畢
實際上我們少了…
Elasticsearch會在你上傳資料的同時,自動
判斷資料型別去建立對應的Schema
Demo
Field types
資料型態可以隱含轉型
“1”,1都可以放進int欄位
對懶人很方便…
但我們是認真的工程師
Schema一欄一欄認真建
賣鬧阿~怎麼可能這麼認真!!
• 1.先上傳一筆資料到你要建立的index
• 2.利用Elasticsearch內建的get schema API
GET /student/_mapping/default
• 3.直接修改裡面的schema
• 4.刪掉原本的index
• 5.用修改完的schema重建index
Demo
對了!Schema可以多加欄位
Example
如果要修改舊欄位的話…
有一種Reindexing 的做法
請參考:http://www.elasticsearch.org/blog/changing-mapping-with-zero-downtime/
Query-DSL
Domain-Specific Language领域特定语言
Query-DSL其實就跟T-SQL一樣簡單
Query-dsl其實就跟T-SQL一樣簡單
怎麼可能
最簡單的查詢會長的像這樣
最簡單的查詢會長的像這樣
INDEXName
最簡單的查詢會長的像這樣
TypeName
最簡單的查詢會長的像這樣
我要搜尋
最簡單的查詢會長的像這樣
開始一段查詢
最簡單的查詢會長的像這樣
要用什麼方式查詢
最簡單的查詢會長的像這樣
查詢的欄位(有分大小寫) 值
恭喜,你已經上手了
http://ppt.cc/BdS8
謝謝大家
怎麼可能這麼簡單!!!!
回到Query-DSL文件…
http://ppt.cc/99gd
好險我只用了這三個
不然講完都過年了
http://ppt.cc/MErQ
直接講重點
你看到的Query都可以組合,有的組不起來
http://ppt.cc/4OBM
Example

沒關係,哪天文件就會寫上去怎麼組合了
http://ppt.cc/PW09
接下來是重頭戲…
客戶的資料有空白居然查不到
WTF!!!怎麼可能!!!!
http://ppt.cc/mmtJ
沒關係Regex很好用
…..
http://ppt.cc/cgmW
再試下去就要打地舖過夜了
直接講我的解法
如果Keyword今天是Joe Simon Kail
上面的keyword有空白
我會Split後,取出長度最長的
[0] Joe
[1]Simon
[2]Kail
最後Keyword會用這樣去找
多找的怎麼辦?
先抓回來再處理
打完收工!謝謝大家
http://ppt.cc/MErQ
後記
修改Analzer 字詞解析器會有不同的搜尋結果
雖然找的到了!!!
但還是找到不該出現的…
SearchKeyword : Joe Simon
字詞解析器可以參考
• http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/anal
ysis-analyzers.html
Q&A
參考資料
• 1.AzureSearch Suffix operator
https://msdn.microsoft.com/en-us/library/azure/dn798920.aspx
• 2.Elasticsearch document apis
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs.html
• 3.Elasticsearch Bullk API
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/bulk.html
• 4.Elasticsearch Field types
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping-intro.html
• 5.Elasticsearch Query DSL
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-queries.html

More Related Content

What's hot

An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
Jurriaan Persyn
 
Elasticsearch From the Bottom Up
Elasticsearch From the Bottom UpElasticsearch From the Bottom Up
Elasticsearch From the Bottom Up
foundsearch
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
pmanvi
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ruslan Zavacky
 
Getting started with Elasticsearch in .net
Getting started with Elasticsearch in .netGetting started with Elasticsearch in .net
Getting started with Elasticsearch in .net
Ismaeel Enjreny
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
Mohamed hedi Abidi
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
Vikram Shinde
 
Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2
Sematext Group, Inc.
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
Roopendra Vishwakarma
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
Mayur Rathod
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Shagun Rathore
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
종민 김
 
Elasticsearch presentation 1
Elasticsearch presentation 1Elasticsearch presentation 1
Elasticsearch presentation 1
Maruf Hassan
 
quick intro to elastic search
quick intro to elastic search quick intro to elastic search
quick intro to elastic search
medcl
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
SeungHyun Eom
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
HeeJung Hwang
 
Elastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & KibanaElastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & Kibana
SpringPeople
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack
주표 홍
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Divij Sehgal
 
Elk
Elk Elk

What's hot (20)

An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
 
Elasticsearch From the Bottom Up
Elasticsearch From the Bottom UpElasticsearch From the Bottom Up
Elasticsearch From the Bottom Up
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Getting started with Elasticsearch in .net
Getting started with Elasticsearch in .netGetting started with Elasticsearch in .net
Getting started with Elasticsearch in .net
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2Side by Side with Elasticsearch & Solr, Part 2
Side by Side with Elasticsearch & Solr, Part 2
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
Elasticsearch presentation 1
Elasticsearch presentation 1Elasticsearch presentation 1
Elasticsearch presentation 1
 
quick intro to elastic search
quick intro to elastic search quick intro to elastic search
quick intro to elastic search
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
 
Elastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & KibanaElastic - ELK, Logstash & Kibana
Elastic - ELK, Logstash & Kibana
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Elk
Elk Elk
Elk
 

Similar to 第一次Elasticsearch就上手

ElasticSearch Introduction
ElasticSearch IntroductionElasticSearch Introduction
ElasticSearch Introduction
TsungWei Hu
 
elastic search分析与实践
elastic search分析与实践elastic search分析与实践
elastic search分析与实践
williams2014
 
Elasticsearch search engine_development_tips
Elasticsearch search engine_development_tipsElasticsearch search engine_development_tips
Elasticsearch search engine_development_tips
YI-CHING WU
 
Elasticsearch 簡介
Elasticsearch 簡介Elasticsearch 簡介
Elasticsearch 簡介
Pei-Hsun Kao
 
Elastic search
Elastic searchElastic search
Elastic search
Samchu Li
 
搜索技术分享
搜索技术分享搜索技术分享
搜索技术分享endless_yy
 
探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用
Yi-Wei Lai
 
Java 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - LuceneJava 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - Lucene
建興 王
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
YI-CHING WU
 
Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿yiditushe
 
语义互操作与关联数据
语义互操作与关联数据语义互操作与关联数据
语义互操作与关联数据
Shanghai Library
 
Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南
Shaoning Pan
 
Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
Frank S.C. Tseng
 
cnYes 如何使用 elasticsearch
cnYes 如何使用 elasticsearchcnYes 如何使用 elasticsearch
cnYes 如何使用 elasticsearch
Szuping Wang
 
Ajax Lucence
Ajax LucenceAjax Lucence
Ajax Lucence
Roger Xia
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
Herman Wu
 
Oracle 索引介紹
Oracle 索引介紹Oracle 索引介紹
Oracle 索引介紹
Chien Chung Shen
 
如何使用Cite space进行文献共被引分析
如何使用Cite space进行文献共被引分析如何使用Cite space进行文献共被引分析
如何使用Cite space进行文献共被引分析
cueb
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
zhen chen
 

Similar to 第一次Elasticsearch就上手 (20)

ElasticSearch Introduction
ElasticSearch IntroductionElasticSearch Introduction
ElasticSearch Introduction
 
elastic search分析与实践
elastic search分析与实践elastic search分析与实践
elastic search分析与实践
 
Elasticsearch search engine_development_tips
Elasticsearch search engine_development_tipsElasticsearch search engine_development_tips
Elasticsearch search engine_development_tips
 
Elasticsearch 簡介
Elasticsearch 簡介Elasticsearch 簡介
Elasticsearch 簡介
 
Elastic search
Elastic searchElastic search
Elastic search
 
搜索技术分享
搜索技术分享搜索技术分享
搜索技术分享
 
探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用
 
Java 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - LuceneJava 的開放原碼全文搜尋技術 - Lucene
Java 的開放原碼全文搜尋技術 - Lucene
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿Itpub电子杂志第四期第二稿
Itpub电子杂志第四期第二稿
 
语义互操作与关联数据
语义互操作与关联数据语义互操作与关联数据
语义互操作与关联数据
 
Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南
 
Kid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese VersionKid171 chap03 traditional Chinese Version
Kid171 chap03 traditional Chinese Version
 
Lucene实践
Lucene实践Lucene实践
Lucene实践
 
cnYes 如何使用 elasticsearch
cnYes 如何使用 elasticsearchcnYes 如何使用 elasticsearch
cnYes 如何使用 elasticsearch
 
Ajax Lucence
Ajax LucenceAjax Lucence
Ajax Lucence
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
Oracle 索引介紹
Oracle 索引介紹Oracle 索引介紹
Oracle 索引介紹
 
如何使用Cite space进行文献共被引分析
如何使用Cite space进行文献共被引分析如何使用Cite space进行文献共被引分析
如何使用Cite space进行文献共被引分析
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 

More from Aaron King

Golang start and tips
Golang start and tipsGolang start and tips
Golang start and tips
Aaron King
 
Jenkins vs gogs
Jenkins vs gogsJenkins vs gogs
Jenkins vs gogs
Aaron King
 
Database index(sql server)
Database index(sql server)Database index(sql server)
Database index(sql server)
Aaron King
 
Css animation
Css animationCss animation
Css animation
Aaron King
 
Running with emmet and scss
Running with emmet  and scssRunning with emmet  and scss
Running with emmet and scss
Aaron King
 
How do i imagine my site
How do i imagine my siteHow do i imagine my site
How do i imagine my site
Aaron King
 
網頁三本柱最終章Javascript與jquery
網頁三本柱最終章Javascript與jquery網頁三本柱最終章Javascript與jquery
網頁三本柱最終章Javascript與jquery
Aaron King
 
那些年網頁Ps切板的小事
那些年網頁Ps切板的小事那些年網頁Ps切板的小事
那些年網頁Ps切板的小事
Aaron King
 
網頁三本柱之Html與css
網頁三本柱之Html與css網頁三本柱之Html與css
網頁三本柱之Html與css
Aaron King
 
我的第一個Git版控
我的第一個Git版控我的第一個Git版控
我的第一個Git版控
Aaron King
 
3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)
3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)
3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)
Aaron King
 
網頁基礎介紹
網頁基礎介紹網頁基礎介紹
網頁基礎介紹
Aaron King
 
Rails gril
Rails grilRails gril
Rails gril
Aaron King
 
Security.pptx [repaired]
Security.pptx [repaired]Security.pptx [repaired]
Security.pptx [repaired]
Aaron King
 

More from Aaron King (14)

Golang start and tips
Golang start and tipsGolang start and tips
Golang start and tips
 
Jenkins vs gogs
Jenkins vs gogsJenkins vs gogs
Jenkins vs gogs
 
Database index(sql server)
Database index(sql server)Database index(sql server)
Database index(sql server)
 
Css animation
Css animationCss animation
Css animation
 
Running with emmet and scss
Running with emmet  and scssRunning with emmet  and scss
Running with emmet and scss
 
How do i imagine my site
How do i imagine my siteHow do i imagine my site
How do i imagine my site
 
網頁三本柱最終章Javascript與jquery
網頁三本柱最終章Javascript與jquery網頁三本柱最終章Javascript與jquery
網頁三本柱最終章Javascript與jquery
 
那些年網頁Ps切板的小事
那些年網頁Ps切板的小事那些年網頁Ps切板的小事
那些年網頁Ps切板的小事
 
網頁三本柱之Html與css
網頁三本柱之Html與css網頁三本柱之Html與css
網頁三本柱之Html與css
 
我的第一個Git版控
我的第一個Git版控我的第一個Git版控
我的第一個Git版控
 
3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)
3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)
3分鐘Azure search自我介紹 ( 3 min talking about Azure Search)
 
網頁基礎介紹
網頁基礎介紹網頁基礎介紹
網頁基礎介紹
 
Rails gril
Rails grilRails gril
Rails gril
 
Security.pptx [repaired]
Security.pptx [repaired]Security.pptx [repaired]
Security.pptx [repaired]
 

第一次Elasticsearch就上手

Editor's Notes

  1. http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs.html 加上用途
  2. http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/bulk.html
  3. http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping-intro.html
  4. http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping-intro.html 查一下有沒有不需要重建的方式
  5. "query": { "bool" : { "must" : { "match" : { "productName" : "Smith" } } } }
  6. Query 的term 跟match要調成一樣