Elasticsearch 시리즈 7: 일반적인 사용 설명서
11530 단어 elasticsearch검색 엔진
1. 클러스터 정보 보기
ElasticSearch는 다음과 같이 클러스터 건강 정보를 확인합니다.
1.1, 클러스터 상태 보기
ElasticSearch 클러스터 상태 보기 명령:
curl 'localhost:9200/_cat/health?v'
그 중에서status는 녹색으로 모든 것이 정상이고, 노란색은 모든 데이터가 사용할 수 있지만 일부 복사본은 아직 분배되지 않았으며, 빨간색은 일부 데이터가 어떤 이유로 사용할 수 없음을 나타낸다.
1.2, 색인 분할 보기
ElasticSearch 색인 분할 보기 명령:
curl 'localhost:9200/_cat/shards?v'
예를 들어 두 개의 인덱스가 있는데 그것이 바로people과product입니다. 그들은 각각 하나의 주분편과 아직 분배되지 않은 부분편을 가지고 있습니다.
1.3, 노드 정보 보기
ElasticSearch 노드 정보 보기 명령:
curl 'localhost:9200/_cat/master?v'
curl 'localhost:9200/_cat/nodes?v'
2. 색인 관련 명령
2.1, 색인 만들기
ElasticSearch 색인 명령 만들기
7.0 버전은 type의 개념을 없앴다.
2.1.1, 7.0 이전 버전 색인 만들기
curl -X PUT 'localhost:9200/product' -H 'Content-Type: application/json' -d '
{
"mappings": {
"type_name": {
"properties": {
"price": {
"type": "integer"
},
"name": {
"type": "text"
}
}
}
}
}'
2.1.2, 7.0 및 그 이후의 버전에 대한 색인 만들기
curl -X PUT 'localhost:9200/product' -H 'Content-Type: application/json' -d '
{
"mappings": {
"properties": {
"price": {
"type": "integer"
},
"name": {
"type": "text"
}
}
}
}'
2.2 쿼리 인덱스
ElasticSearch는 모든 색인 명령을 조회합니다.
curl 'localhost:9200/_cat/indices?v'
위의 예에서 볼 수 있듯이 집단에 두 개의 색인이 있다.그들의 이름은 각각people,product이다.그리고 각각 주분편과 부분편이 있다.
2.3, 검색 인덱스 구조
2.3.1 모든 인덱스 맵핑 데이터 구조 보기
ElasticSearch 쿼리 색인 매핑 구조 명령:
curl 'localhost:9200/_mapping?pretty'
위의 예는 색인people과 제품의mapping 데이터 구조를 조회했습니다.
2.3.2 지정된 인덱스mapping 데이터 구조 보기
2.3.2.1, 7.0 이전 버전
인덱스 이름이 indexName이고 type 이름이 typeName인 인덱스 매핑 데이터 구조를 보려면 다음과 같이 하십시오.
curl -XGET "127.0.0.1:9200/indexName/typeName/_mapping?pretty"
2.3.2.2, 7.0 및 그 이후 버전
인덱스 이름이 indexName인 인덱스 매핑 데이터 구조를 보려면 다음과 같이 하십시오.
curl -XGET "127.0.0.1:9200/indexName/_mapping?pretty"
2.4, 색인에 필드 추가
ElasticSearch 색인에 필드 명령 추가
2.4.1, 7.0 이전 버전
curl -XPOST "127.0.0.1:9200/indexName/typeName/_mapping?pretty" -H 'Content-Type: application/json' -d '{
"typeName": {
"properties": {
"tags":{
"type":"text"
}
}
}
}'
위의 예는 인덱스 이름이 indexName이고 type 이름이 typeName인 맵핑 데이터 구조에 tags 필드를 추가하는 것을 나타냅니다.
2.4.2, 7.0 및 그 이후 버전
curl -XPOST "127.0.0.1:9200/product/_mapping?pretty" -H 'Content-Type: application/json' -d '{
"properties": {
"tags":{
"type":"text"
}
}
}'
위의 예는 색인 이름이 제품인mapping 데이터 구조에 tags 필드를 추가하는 것을 나타낸다
2.5, 색인에서 필드 삭제
ElasticSearch는 현재 지원되지 않습니다.
2.6, 인덱스 삭제
ElasticSearch 색인 제거 명령.
curl -X DELETE 'localhost:9200/product'
위의 예는 제품이라는 인덱스를 삭제하는 것을 나타낸다.
3. 데이터 문서 검색 쿼리 관련 명령
아래에 언급된 데이터는 색인 중의 문서입니다.
3.1 데이터 쓰기 명령
ElasticSearch 데이터 쓰기 명령.
7.0 버전은 type의 개념을 없앴다.
3.1.1, 7.0 이전 버전 쓰기
curl -X PUT 'localhost:9200/product/type_name/1' -H 'Content-Type: application/json' -d '
{
"price":1,
"name":" "
}'
3.1.2, 7.0 및 이후 릴리즈에서 데이터 쓰기
curl -X PUT 'localhost:9200/product/_doc/1' -H 'Content-Type: application/json' -d '
{
"price":1,
"name":" "
}'
3.2 쿼리 데이터 검색 명령
ElasticSearch 데이터 검색 명령
3.2.1, 7.0 이전 버전 검색 데이터
3.2.1.1 키 검색
curl -X GET 'localhost:9200/product/type_name/1?pretty'
3.2.1.2 키워드 검색
curl -X GET 'localhost:9200/product/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"match": {
"name": " "
}
},
"from":0,
"size":1
}'
3.2.2, 7.0 및 그 이후의 버전 검색 데이터
3.2.2.1 키 검색
curl -X GET 'localhost:9200/product/_doc/1?pretty'
3.2.2.2 키워드 검색
curl -X GET 'localhost:9200/product/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"match": {
"name": " "
}
},
"from":0,
"size":1
}'
3.2.3 다중 값에 대한 필드 검색
쿼리name에는'애플'이 포함되어 있고 tags에는'애플'또는'후지산'의 문서 데이터가 있습니다.
curl -X GET 'localhost:9200/product/_search?pretty' -H 'Content-Type: application/json' -d '{
"query":{
"bool":{
"must":[
{
"bool":{
"should":[
{"match":{"name":" "}},
{"terms": {"tags": [" "," "]}}
]
}
}
]
}
},
"sort":{
"_score":{"order":"desc"}
},
"from":0,
"size":10
}'
3.2.4, 다중 필드 공동 조회
쿼리name에는 "애플"및 price 1의 문서 데이터가 포함되어 있습니다.
curl -X GET 'localhost:9200/product/_search?pretty' -H 'Content-Type: application/json' -d '{
"query":{
"bool":{
"must":[
{
"bool":{
"should":[
{"match":{"name":" "}},
{"match":{"price":1}}
]
}
}
]
}
},
"sort":{
"_score":{"order":"desc"}
},
"from":0,
"size":10
}'
3.3 데이터 업데이트 명령
ElasticSearch에서 데이터 업데이트 명령:
curl -X PUT 'localhost:9200/product/_doc/1' -H 'Content-Type: application/json' -d '
{
"price":1,
"name":" ",
"tags":[" "," "," "]
}'
3.4, 데이터 삭제
ElasticSearch에서 문서 데이터 삭제 명령:
3.4.1, 7.0 이전 버전
문서 삭제
curl -XDELETE 'http://localhost:9200/indexName/typeName/1'
위의 예는 색인 이름이 indexName이고 type 이름이 typeName인 색인에서 문서 ID가 1인 문서를 삭제합니다.
3.4.2, 7.0 및 그 이후의 버전
curl -XDELETE 'http://localhost:9200/indexName/_doc/1'
4. ElasticSearch에서 분사기 분석기가 명령줄에서 사용하는 방법
ElasticSearch는 서로 다른 단어 플러그인을 지원합니다. 다음 예에서 우리는 analysis-ik 단어 플러그인을 사용했습니다.
ElasticSearch의 API 인터페이스를 통해 서로 다른 분사기의 분사 결과를 분석할 수 있습니다.구체적인 단계는 다음과 같다.
4.1, 두 문자 유형의 필드를 추가하고 다른 분사기를 지정합니다.
curl -XPOST "127.0.0.1:9200/product/_mapping?pretty" -H 'Content-Type: application/json' -d '{
"properties": {
"pNameIkMaxWord":{
"type":"text",
"analyzer":"ik_max_word"
},
"pNameIkSmart":{
"type":"text",
"analyzer":"ik_smart"
}
}
}'
4.2, ik_ 사용max_단어 분사 분석
curl -XPOST 'http://localhost:9200/product/_analyze?pretty' -H 'Content-Type: application/json' -d '
{
"field": "pNameIkMaxWord",
"text": " "
}'
분사 결과는 다음과 같습니다.
{
"tokens" : [
{
"token" : " ",
"start_offset" : 0,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : " ",
"start_offset" : 0,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : " ",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : " ",
"start_offset" : 1,
"end_offset" : 3,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : " ",
"start_offset" : 2,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 4
},
{
"token" : " ",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 5
},
{
"token" : " ",
"start_offset" : 4,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 6
},
{
"token" : " ",
"start_offset" : 4,
"end_offset" : 6,
"type" : "CN_WORD",
"position" : 7
},
{
"token" : " ",
"start_offset" : 6,
"end_offset" : 7,
"type" : "CN_CHAR",
"position" : 8
},
{
"token" : " ",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 9
}
]
}
4.3, ik_ 사용smart 분사 분석
curl -XPOST 'http://localhost:9200/product/_analyze?pretty' -H 'Content-Type: application/json' -d '
{
"field": "pNameIkSmart",
"text": " "
}'
분사 결과는 다음과 같습니다.
{
"tokens" : [
{
"token" : " ",
"start_offset" : 0,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : " ",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 1
}
]
}
시리즈
https://elasticsearch.cn/arti... ↩
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.