Elasticsearch 내장 형 데 이 터 를 조회 하고 내장 데이터 에 적 중 된 요소 만 되 돌려 줍 니 다. md
\ # \ # 테스트 데이터 만 들 기
테스트 로 index 를 새로 만 듭 니 다.
다음은 블 로그 글 과 댓 글 을 저장 하 는 데이터 구조 입 니 다. 댓 글 (comments) 은 nested 형식 입 니 다.
PUT /es_blog
{
"mappings": {
"blogpost": {
"properties": {
"title": {
"type": "text"
},
"summary": {
"type": "text"
},
"content": {
"type": "text"
},
"comments": {
"type": "nested",
"properties": {
"name": {
"type": "text"
},
"comment": {
"type": "text"
},
"age": {
"type": "short"
},
"stars": {
"type": "short"
},
"date": {
"type": "date"
}
}
}
}
}
}
}
테스트 데이터 쓰기
PUT /es_blog/blogpost/1
{
"title": " ",
"summary": " 、JAVA、HTML5",
"content": " :JAVA、HTML5、JavaScript、 、 ",
"comments": [
{
"name": "John Smith",
"comment": "Great article",
"age": 28,
"stars": 4,
"date": "2014-09-01"
},
{
"name": "Alice White",
"comment": "More like this please",
"age": 31,
"stars": 5,
"date": "2014-10-22"
}
]
}
PUT /es_blog/blogpost/2
{
"title": "Java ",
"summary": "JAVA、Oracle、Hibernate、Spring",
"content": "Java :JAVA、Oracle、Hibernate、Spring、 ",
"comments": [
{
"name": "John Smith",
"comment": " ",
"age": 28,
"stars": 4,
"date": "2014-09-01"
},
{
"name": "Alice White",
"comment": "Java ",
"age": 31,
"stars": 5,
"date": "2014-10-22"
}
]
}
PUT /es_blog/blogpost/3
{
"title": " ",
"summary": "Hadoop、Hive、Hdfs、JAVA",
"content": " :Hadoop、Hive、Hdfs、JAVA、Spark、 ",
"comments": [
{
"name": "John Smith",
"comment": " ",
"age": 28,
"stars": 4,
"date": "2014-09-01"
},
{
"name": "Alice White",
"comment": " ",
"age": 31,
"stars": 5,
"date": "2014-10-22"
}
]
}
PUT /es_blog/blogpost/4
{
"title": " ",
"summary": "Python、 、 、 、 ",
"content": " :Python、 、 、 、 ",
"comments": [
{
"name": "John Smith",
"comment": " NX",
"age": 28,
"stars": 4,
"date": "2014-09-01"
},
{
"name": "Alice White",
"comment": "Python ?",
"age": 31,
"stars": 5,
"date": "2014-10-22"
}
]
}
\ # \ # 조회 실행
검색 텍스트 필드 에 [엔지니어] 데이터 가 나 왔 습 니 다.
GET es_blog/blogpost/_search
{
"_source": {
"includes": [
"*"
],
"excludes": [
"comments" // comments
]
},
"query": {
"bool": {
"should": [
{
"match": {
"title": " "
}
},
{
"match": {
"summary": " "
}
},
{
"match": {
"content": " "
}
},
{
"nested": {
"path": "comments",
"query": {
"bool": {
"should": [
{
"match": {
"comments.comment": " "
}
}
]
}
},
"inner_hits": {}
}
}
]
}
}
}
결과 되 돌리 기:
{
"took": 9,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 3.5560012,
"hits": [
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "3",
"_score": 3.5560012,
"_source": {
"summary": "Hadoop、Hive、Hdfs、JAVA",
"title": " ",
"content": " :Hadoop、Hive、Hdfs、JAVA、Spark、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 1,
"max_score": 1.8299085,
"hits": [
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "3",
"_nested": {
"field": "comments",
"offset": 0
},
"_score": 1.8299085,
"_source": {
"name": "John Smith",
"comment": " ",
"age": 28,
"stars": 4,
"date": "2014-09-01"
}
}
]
}
}
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "2",
"_score": 3.1327708,
"_source": {
"summary": "JAVA、Oracle、Hibernate、Spring",
"title": "Java ",
"content": "Java :JAVA、Oracle、Hibernate、Spring、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 2,
"max_score": 2.0794415,
"hits": [
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "2",
"_nested": {
"field": "comments",
"offset": 0
},
"_score": 2.0794415,
"_source": {
"name": "John Smith",
"comment": " ",
"age": 28,
"stars": 4,
"date": "2014-09-01"
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "2",
"_nested": {
"field": "comments",
"offset": 1
},
"_score": 1.9221728,
"_source": {
"name": "Alice White",
"comment": "Java ",
"age": 31,
"stars": 5,
"date": "2014-10-22"
}
}
]
}
}
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "1",
"_score": 1.7260926,
"_source": {
"summary": " 、JAVA、HTML5",
"title": " ",
"content": " :JAVA、HTML5、JavaScript、 、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "4",
"_score": 1.0651813,
"_source": {
"summary": "Python、 、 、 、 ",
"title": " ",
"content": " :Python、 、 、 、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
}
}
]
}
}
콘 텐 츠 에 [java] 가 나타 나 거나 댓 글 에 [python] 이 나타 나 는 데 이 터 를 조회 합 니 다.
GET es_blog/blogpost/_search
{
"_source": {
"includes": [
"*"
],
"excludes": [
"comments"
]
},
"query": {
"bool": {
"should": [
{
"match": {
"content": "java"
}
},
{
"nested": {
"path": "comments",
"query": {
"bool": {
"should": [
{
"match": {
"comments.comment": "python"
}
}
]
}
},
"inner_hits": {}
}
}
]
}
}
}
결과 되 돌리 기
{
"took": 9,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 1.3112576,
"hits": [
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "4",
"_score": 1.3112576,
"_source": {
"summary": "Python、 、 、 、 ",
"title": " ",
"content": " :Python、 、 、 、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 1,
"max_score": 1.3112576,
"hits": [
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "4",
"_nested": {
"field": "comments",
"offset": 1
},
"_score": 1.3112576,
"_source": {
"name": "Alice White",
"comment": "Python ?",
"age": 31,
"stars": 5,
"date": "2014-10-22"
}
}
]
}
}
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "2",
"_score": 0.75974846,
"_source": {
"summary": "JAVA、Oracle、Hibernate、Spring",
"title": "Java ",
"content": "Java :JAVA、Oracle、Hibernate、Spring、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "1",
"_score": 0.2876821,
"_source": {
"summary": " 、JAVA、HTML5",
"title": " ",
"content": " :JAVA、HTML5、JavaScript、 、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
}
},
{
"_index": "es_blog",
"_type": "blogpost",
"_id": "3",
"_score": 0.2876821,
"_source": {
"summary": "Hadoop、Hive、Hdfs、JAVA",
"title": " ",
"content": " :Hadoop、Hive、Hdfs、JAVA、Spark、 "
},
"inner_hits": {
"comments": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
}
}
]
}
}
다음으로 전송:https://www.cnblogs.com/robinzh/p/9311025.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.