1. 분산 검색 엔진 ElasticSearch 전생

5486 단어 Search
ElasticSearch는 Lucene을 바탕으로 구축된 오픈소스, 분포식, RESTful API식 검색 서버로 오픈소스 검색 플랫폼의 새로운 구성원이며 실시간 데이터 분석의 신기로 높은 신뢰성을 갖추고 클라우드 컴퓨팅에 사용되며 실시간 검색과 안정적이고 신뢰할 수 있는 빠른 서비스를 제공할 수 있다.
 
 
Elasticsearch는 최근 몇 년 동안 급속히 발전했기 때문에 다음과 같은 몇 가지에서 알 수 있듯이 Elasticsearch가 받는 관심도가 매우 높다는 것을 알 수 있다.
 
2012년 11월에 Elasticsearch는 1000만 달러의 융자를 받았다
2013년 02월에 Elasticsearch는 2400만 달러의 융자를 받았다
2013년 초 GitHub는 Solr를 버리고 Elastic Search의 품에 안겨 PB급 검색을 했습니다
 

Elasticsearch의 장점


 

실시간 분산 검색 및 분석 엔진


Elasticsearch는 실시간 분포식 검색과 분석 엔진입니다.그것은 당신이 전대미문의 속도로 대규모 데이터를 처리하는 것을 도울 수 있다.Lucene는 현재 가장 선진적이고 효율적인 전 기능 개원 검색 엔진 프레임워크라고 할 수 있지만 Lucene는 하나의 프레임워크일 뿐이다. 그 기능을 충분히 이용하려면 학습 비용이 매우 높아야 한다. 왜냐하면 Lucene은 확실히 매우 복잡하기 때문이다.한편, Elasticsearch는 Lucene를 내부 엔진으로 사용하고 그 기초 위에서 기능이 강한 RESTful API를 봉하여 배후의 복잡한 논리를 이해하지 않아도 검색을 완성할 수 있다.
 

elasticsearch의 데이터 모델


Elasticsearch의 데이터 모델은 모델의 자유와 데이터베이스가 문서를 대상으로 하는 것에 속한다. Elasticsearch의 모델은 JSON을 바탕으로 JSON을 통해 반구조화된 데이터를 간단하게 나타낼 수 있고 대부분의 프로그래밍 언어는 JSON 데이터의 해석을 우선적으로 지원한다.
 

모드 매핑(Schema Mapping)


elasticsearch는 패턴이 없습니다. JSON 형식의 문서를 아무렇게나 던지면 ES가 자동으로 색인을 할 수 있습니다.입력한 내용이 숫자나 시간 유형이라면 ES도 자동으로 검출되어 해당하는 처리를 한다.
 
색인 문서의 필드는 BOOST 값을 설정하여 점수를 매기는 데 영향을 미칠 수 있으며, 다른 분석기(Analyzer)를 사용하여 단어를 어떻게 나누는지 제어할 수 있다. 예를 들어 어떤 필드는 단어를 나누어야 하지만, 어떤 필드는 반드시 그렇지는 않다.elasticsearch는 이 규칙들을 완전히 제어하여 최종적으로 JSON 문서를 검색 엔진에 비추도록 합니다.색인(Index) 및 유형(Type) 레벨별로 설정할 수 있습니다.
예:
 
// 
$ curl -XPUT http://localhost:9200/qixing318

// Mapping
$ curl -XPUT http://localhost:9200/qixing318/user/_mapping -d '{
    "properties" : {
        "name" : { "type" : "string" }
    }
}'

 

데이터 가져오기(GETting Some Data)


모든 색인 문서는 유일한 표지(유형 단계에서)가 있어야 한다. 예를 들어 색인 문서를 업데이트하거나 삭제하거나 색인 데이터를 가져와서 보려는 경우가 많다.
그러면 elasticsearch에 알려주고 문서의 인덱스, 유형, id를 지정하면 실제 인덱스 문서를 가져올 수 있습니다. (이 인덱스 문서는 당신이 인덱스를 만들 때 생성된 JSON 형식의 문서입니다.)
 
다음 예제에서는 Elasticsearch에서 색인을 만드는 방법을 보여 줍니다.
 
$ curl -XPUT http://localhost:9200/qixing318/article/2 -d '{
    "user": "kimchy",
    "post_date": "2009-11-15T14:12:12",
    "message": "You know, for Search"
}'

위의 요청 URL 주소는 다음과 같은 세 가지 섹션으로 구분됩니다.
 
 
http://localhost:9200
(Host) 시작된 elasticsearch 서비스 호스트 주소, 감청 포트 9200
qixing318
(Index) 색인을 만드는 이름은 qixing318입니다. 물론 사용자의 요구에 따라 색인 이름을 설정할 수 있습니다
article
(Type) 유형

(ID) 개체 id 번호, 예를 들어 mysql을 삽입할 때의 주 건식 ID 값
 
 
색인이 만들어졌으니 이제 얻을 수 있습니다
$ curl -XGET http://localhost:9200/qixing318/article/2

인덱스 가져오기는qixing318이고 형식은article, id가 2인 문서 데이터입니다. 데이터가 존재하면 해당하는 데이터를 되돌려주고 존재하지 않으면 미스를 되돌려줍니다. 간단하지 않습니까?
 
문서:http://www.qixing318.com/article/distributed-search-engine-elasticsearch-incarnations.html

좋은 웹페이지 즐겨찾기