全文搜尋引擎 Elasticsearch 入門教程
一、安裝
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1/
$ ./bin/elasticsearch
$ sudo sysctl -w vm.max_map_count=262144
$ curl localhost:9200
{
"name" : "atntrTf",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "tf9250XhQ6ee4h7YI11anA",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
network.host: 0.0.0.0
二、基本概念
2.1 Node 與 Cluster
2.2 Index
$ curl -X GET '[http://localhost](http://localhost/):9200/_cat/indices?v'
2.3 Document
{
"user": "張三",
"title": "工程師",
"desc": "資料庫管理"
}
2.4 Type
$ curl 'localhost:9200/_mapping?pretty=true'
三、新建和刪除 Index
$ curl -X PUT 'localhost:9200/weather'
{
"acknowledged":true,
"shards_acknowledged":true
}
$ curl -X DELETE 'localhost:9200/weather'
四、中文分詞設定
$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip
$ curl -X PUT 'localhost:9200/accounts' -d '
{
"mappings": {
"person": {
"properties": {
"user": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"title": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
},
"desc": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
}
}
}
}'
-
user
-
title
-
desc
"user": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
五、資料操作
5.1 新增記錄
$ curl -X PUT 'localhost:9200/accounts/person/1' -d '
{
"user": "張三",
"title": "工程師",
"desc": "資料庫管理"
}'
{
"_index":"accounts",
"_type":"person",
"_id":"1",
"_version":1,
"result":"created",
"_shards":{"total":2,"successful":1,"failed":0},
"created":true
}
$ curl -X POST 'localhost:9200/accounts/person' -d '
{
"user": "李四",
"title": "工程師",
"desc": "系統管理"
}'
{
"_index":"accounts",
"_type":"person",
"_id":"AV3qGfrC6jMbsbXb6k1p",
"_version":1,
"result":"created",
"_shards":{"total":2,"successful":1,"failed":0},
"created":true
}
5.2 檢視記錄
$ curl 'localhost:9200/accounts/person/1?pretty=true'
{
"_index" : "accounts",
"_type" : "person",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"user" : "張三",
"title" : "工程師",
"desc" : "資料庫管理"
}
}
$ curl 'localhost:9200/weather/beijing/abc?pretty=true'
{
"_index" : "accounts",
"_type" : "person",
"_id" : "abc",
"found" : false
}
5.3 刪除記錄
$ curl -X DELETE 'localhost:9200/accounts/person/1'
5.4 更新記錄
$ curl -X PUT 'localhost:9200/accounts/person/1' -d '
{
"user" : "張三",
"title" : "工程師",
"desc" : "資料庫管理,軟體開發"
}'
{
"_index":"accounts",
"_type":"person",
"_id":"1",
"_version":2,
"result":"updated",
"_shards":{"total":2,"successful":1,"failed":0},
"created":false
}
"_version" : 2,
"result" : "updated",
"created" : false
六、資料查詢
6.1 返回所有記錄
$ curl 'localhost:9200/accounts/person/_search'
{
"took":2,
"timed_out":false,
"_shards":{"total":5,"successful":5,"failed":0},
"hits":{
"total":2,
"max_score":1.0,
"hits":[
{
"_index":"accounts",
"_type":"person",
"_id":"AV3qGfrC6jMbsbXb6k1p",
"_score":1.0,
"_source": {
"user": "李四",
"title": "工程師",
"desc": "系統管理"
}
},
{
"_index":"accounts",
"_type":"person",
"_id":"1",
"_score":1.0,
"_source": {
"user" : "張三",
"title" : "工程師",
"desc" : "資料庫管理,軟體開發"
}
}
]
}
}
-
total:返回記錄數,本例是2條。
-
max_score:最高的匹配程度,本例是1.0。
-
hits:返回的記錄組成的陣列。
6.2 全文搜尋
$ curl 'localhost:9200/accounts/person/_search' -d '
{
"query" : { "match" : { "desc" : "軟體" }}
}'
{
"took":3,
"timed_out":false,
"_shards":{"total":5,"successful":5,"failed":0},
"hits":{
"total":1,
"max_score":0.28582606,
"hits":[
{
"_index":"accounts",
"_type":"person",
"_id":"1",
"_score":0.28582606,
"_source": {
"user" : "張三",
"title" : "工程師",
"desc" : "資料庫管理,軟體開發"
}
}
]
}
}
$ curl 'localhost:9200/accounts/person/_search' -d '
{
"query" : { "match" : { "desc" : "管理" }},
"size": 1
}'
$ curl 'localhost:9200/accounts/person/_search' -d '
{
"query" : { "match" : { "desc" : "管理" }},
"from": 1,
"size": 1
}'
6.3 邏輯運算
$ curl 'localhost:9200/accounts/person/_search' -d '
{
"query" : { "match" : { "desc" : "軟體 系統" }}
}'
$ curl 'localhost:9200/accounts/person/_search' -d '
{
"query": {
"bool": {
"must": [
{ "match": { "desc": "軟體" } },
{ "match": { "desc": "系統" } }
]
}
}
}'
七、參考連結
-
ElasticSearch 官方手冊 (https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html)
-
A Practical Introduction to Elasticsearch (https://www.elastic.co/blog/a-practical-introduction-to-elasticsearch)
相關推薦
全文搜尋引擎 Elasticsearch 入門教程-Index
前言: 之前已經說過最近正在做資料建設,爬取資料之後經過處理,最終匯入到ElasticSearch中,並編寫公共介面以提供給後臺進行檢索操作;本來想等把ElasticSearch官方API都看過一遍,形成思維導圖之後再整理出來,因為熟悉一個工具,它能做到的,比你知道它能做到的要全面也重要的多,但是整理了兩章之
全文搜尋引擎 Elasticsearch 入門教程
全文搜尋屬於最常見的需求,開源的 Elasticsearch (以下簡稱 Elastic)是目前全文搜尋引擎的首選。 它可以快速地儲存、搜尋和分析海量資料。維基百科、Stack Overflow、Github 都採用它。Elastic 的底層是開源庫 Lucene。但
全文搜尋引擎Elasticsearch入門教程
$ curl 'localhost:9200/accounts/person/_search'{ "took":2, "timed_out":false, "_shards":{"total":5,"successful":5,"failed":0}, "hits":{ "total":2,
全文搜索引擎 Elasticsearch 入門教程
config har tle 如果 數量 date cse 返回 寫入 全文搜索屬於最常見的需求,開源的 Elast
全文搜尋引擎 Elasticsearch 教程
全文搜尋屬於最常見的需求,開源的 Elasticsearch (以下簡稱 Elastic)是目前全文搜尋引擎的首選。 它可以快速地儲存、搜尋和分析海量資料。維基百科、Stack Overflow、Github 都採用它。 Elastic 的底層是開源庫 Lucene。但是,你沒法直接用 Lucene
全文搜尋引擎ElasticSearch新手實戰教程
全文搜尋 屬於最常見的需求,開源的 ElasticSearch (以下簡稱 Elastic)是目前全文搜尋引擎的首選。 它可以快速地儲存、搜尋和分析海量資料。維基百科、Stack Overflow、Github 都採用它。 Elastic 的底層是開源庫 Lucene 。但是,你沒法直接用 Luc
ES篇:全文搜尋引擎 Elasticsearch
全文搜尋屬於最常見的需求,開源的 Elasticsearch (以下簡稱 Elastic)是目前全文搜尋引擎的首選。 它可以快速地儲存、搜尋和分析海量資料。維基百科、Stack Overflow、Github 都採用它。 Elastic 的底層是開源庫 L
全文搜尋引擎——Elasticsearch
Elasticsearch 開源的 Elasticsearch 是目前全文搜尋引擎的首選。 它可以快速地儲存、搜尋和分析海量資料。維基百科、Stack Overflow、Github 都採用它。 Elasticsearch 的底層是開源庫 Lucene。但是,你
分散式搜尋引擎ElasticSearch——入門知識
什麼是ElasticSearch ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分 布式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發 的,並作為Apache許可條款下的開放原始碼釋出,是當前流行的企業級搜尋引擎
全文搜尋引擎 ElasticSearch 還是 Solr?
最近專案組安排了一個任務,專案中用到了全文搜尋,基於全文搜尋 Solr,但是該 Solr 搜尋雲專案不穩定,經常查詢不出來資料,需要手動全量同步,而且是其他團隊在維護,依賴性太強,導致 Solr 服務一出問題,我們的專案也基本癱瘓,因為所有的依賴查詢都無結果資料了。所以考慮開發一個適配層,如果 Solr 搜尋
全文搜尋引擎ElasticSearch初使用
一、Docker下安裝ElasticSearch 1、在Docker映象倉庫中,搜尋ElasticSearch映象 docker search elasticsearch 2、Docker下安裝ElasticSearch docker pull registry.
Elasticsearch入門教程(一):Elasticsearch及外掛安裝
一:安裝Elasticsearch 下載並解壓Elasticsearch 直接到官網(https://www.elastic.co/cn/downloads/elasticsearch)下載適合自己的系統的Elasticsearch,這裡下載的是目前最新的
全文搜尋引擎 Elasticsearch
寫在前面 最近在學Elasticsearch , 我相信只要是接觸過開發的都會聽過Elasticsearch或ELK這麼一個技術。 主要用來做全文檢索或大資料分析等,之前一直處理了解狀態。 所以打算系統學學Elasticsearch ,這也算是我從零學習Elasticsearch的筆記吧。 1. Elasti
全文搜尋引擎ElasticSearch
1. 介紹 ElasticSearch簡稱ES。 先來看它的用途:如果只是在多個機器同步,儲存和檢索大量資料,它與資料庫的差別在哪兒,為什麼非要使用ES呢? ES是目前全文搜尋引擎的首選。全文檢索是指計算機索引程式通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明
C呼叫libcurl庫函式 查詢全文搜尋引擎 Elasticsearch
//執行在ubuntu64系統下//curles.c#include <stdio.h>#include <curl/curl.h>#include <string.h>size_t write_data(void *ptr, size_t
搜尋引擎ElasticSearch入門
#### 前言 最近專案上需要用到搜尋引擎,由於之前自己沒有了解過,所以整理了一下搜尋引擎的相關概念知識。 #### 正文 想查資料就免不了搜尋,搜尋就離不開搜尋引擎,百度、谷歌都是一個非常龐大複雜的搜尋引擎,他們幾乎索引了網際網路上開放的所有網頁和資料。然而對於我們自己的業務資料來說,肯定就沒必要用這
elasticsearch索引快速入門-實時全文搜尋引擎
一.es是什麼 Search & Analyze Data in Real Time 核心的功能就是搜尋,全文搜尋框架,接近實時的搜尋強力搜尋引擎依賴Lucene,新上傳,修改的索引同步速度接近實時 優勢: 1.分散式,水平擴容,高可用 2.實時
Elasticsearch全文檢索工具入門
使用步驟 artifact rop 創建 是否 方式 cluster 包名 Lucene 1 Elasticsearch全文檢索工具入門: 2 1.下載對應系統版本的文件 3 elasticsearch-2.4.0.zip 4
14套java精品高級架構課,緩存架構,深入Jvm虛擬機,全文檢索Elasticsearch視頻教程
http soft 精品 target mysql rocket body 精通 ava 14套java精品高級架構課,緩存架構,深入Jvm虛擬機,全文檢索Elasticsearch,Dubbo分布式Restful服務,並發原理編程,SpringBoot,SpringClo
PHP-elasticsearch配置+基於elasticsearch全文搜尋引擎的開發小結
首先參照官網內容下載與自己php以及elasticsearch版本相匹配的Php-elasticsearch,按照官網內容進行配置https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.ht