0
国名が「インド」のすべての州を取得したいと考えています。 なぜ弾性検索で入れ子になったデータを検索できないのですか?ElasticSearchのネストされた検索が機能していませんか?
例外:ネストされた:QueryParsingException [[userinfo] [ネストされた]ネストされたオブジェクトがパス[ネーミング]のネストされたオブジェクトではありません];
のuserinfoはインデックス名と状態がタイプ
POST /userinfo/state/_search?v
{
"query": {
"nested": {
"path": "country",
"query": {
"match": {
"country.name": "India"
}
}
}
}
}
------------------------------
My Json is for state type :
{
"_index": "userinfo",
"_type": "state",
"_id": "35",
"_score": 1,
"_source": {
"id": "35",
"name": "County Down",
"abbreviation": "DWN",
"isDeleted": 0,
"country": {
"id": "3",
"name": "United Kingdom",
"abbreviation": "UK",
"isDeleted": 0
}
}
}
-------------------------------------
</br></br>
State.java
package com.elastic.entity;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
@Document(indexName = "userinfo", type = "state")
public class State {
@Id
private String id;
private String name;
private String abbreviation;
private int isDeleted;
@Field(type = FieldType.Nested)
private Country country;
public State()
{
super();
}
public State(String id, String name, String abbreviation, int isDeleted, Country country) {
super();
this.id = id;
this.name = name;
this.abbreviation = abbreviation;
this.isDeleted = isDeleted;
this.country = country;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAbbreviation() {
return abbreviation;
}
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
public int getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(int isDeleted) {
this.isDeleted = isDeleted;
}
public Country getCountry() {
return country;
}
public void setCountry(Country country) {
this.country = country;
}
}