Can't get text on a START_ARRAY at 14:21
3173 단어 ElasticSearch
must,should,must not를 사용할 때 어떤 필드는 X일 수도 있고 Y일 수도 있고 심지어 Z일 수도 있다.
GET /ecommerce/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "yagao"
}
}
],
"should": [
{
"match": {
"desc": ["fangzhu","caoben"]
}
}
],
"must_not": [
{
"match": {
"price": 25
}
}
],
"minimum_should_match": 1
}
}
}
결과
{
"error": {
"root_cause": [
{
"type": "illegal_state_exception",
"reason": "Can't get text on a START_ARRAY at 14:21"
}
],
"type": "illegal_state_exception",
"reason": "Can't get text on a START_ARRAY at 14:21"
},
"status": 500
}
인터넷에서 오랫동안 찾았지만 국내의 어떤 블로그나 포럼에서도 해결 방안을 찾지 못했다. 다행히도 외국의 Elastic Search 커뮤니티에서 해결 방안을 찾았기 때문에 이를 기록으로 삼아 원래 링크는 [Solved] Illegal State - START_ARRAY
수정 후
GET /ecommerce/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "yagao"
}
}
],
"should": [
{
"match": {
"desc": "fangzhu"
}
},
{
"match": {
"desc": "caoben"
}
}
],
"must_not": [
{
"match": {
"price": 25
}
}
],
"minimum_should_match": 1
}
}
}
결과 반환
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0.5753642,
"hits": [
{
"_index": "ecommerce",
"_type": "product",
"_id": "3",
"_score": 0.5753642,
"_source": {
"name": "zhonghua yagao",
"desc": "caoben zhiwu",
"price": 40,
"producer": "zhonghua producer",
"tags": [
"qingxin"
]
}
},
{
"_index": "ecommerce",
"_type": "product",
"_id": "J3fLFWYBBoLynJN1-kOG",
"_score": 0.36464313,
"_source": {
"name": "test yagao",
"desc": "youxiao fangzhu"
}
}
]
}
}
문제 해결
더 많은 검색 관련 보기 가능
ElasticSearch 자습서 - Kibana 간단한 작업 ES
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spring-data-elasticsearch 페이지 조회부록: 1. 이름에서 알 수 있듯이QueryBuilder는 검색 조건, 필터 조건을 구축하는 데 사용되고 SortBuilder는 정렬을 구축하는 데 사용된다. 예를 들어 우리는 어느 위치에서 100미터 범위 내의 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.