0
私は、Spring Data Elasticsearchをリポジトリクラスとともに使用しています。ここで私はを通じて照会したい私のオブジェクトは、次のとおりです。Spring Data Elasticsearchリポジトリ:入れ子オブジェクトのクエリ
public class Person{
String firstName;
String lastName;
Location location;
}
public class Location{
String name;
}
@Query("{\"bool\" : {"
+ "\"should\" : [ "
+ "{"
+ "\"term\" : {"
+ "\"firstName\" : \"?0\""
+ "}"
+ "},"
+ "{"
+ "\"term\" : {"
+ "\"lastName\" : \"?0\""
+ "}"
+ "},"
+ "{"
+ "\"term\" : {"
+ "\"location.name\" : \"?0\""
+ "}"
+ "}"
+ "]"
+ "}}")
List<Person> findByFirstNameOrLastName(String term);
私はlocation.nameで検索することはできません - どのように私は、クエリを変更することができ、これが動作すること?
UPDATEマッピング
あなたのマッピングがロケーションオブジェクトがネストされている場合は、ネストされたクエリを使用する必要がありますどのように見えるか{
"properties" : {
"firstName": {
"type": "string",
"analyzer": "firstNameNGram"
},
"lastName": {
"type": "string",
"analyzer": "firstNameNGram"
},
"location": {
"type": "nested",
"properties": {
"name": {
"type": "string",
"analyzer": "firstNameNGram"
},
"company": {
"type": "nested",
"properties": {
"name": {
"type": "string",
"analyzer": "firstNameNGram"
}
}
}
}
}
}
}
:
nested query
クエリは次のようになります私の質問w iが追加されました –
偉大な、それは私のために働いた! –