spring - 在 Spring Elasticsearch 中使用多个查询搜索多个字段
问题描述
我正在使用 Spring Elasticsearch。这是我的java类:
@Entity
@Document(indexName = "shopindex")
public class Shop implements Serializable {
private @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id;
private String imagePath;
@Field(type = FieldType.Text, name = "name")
private String name;
@Field(type = FieldType.Text, name = "description")
private String description;
@Field(type = FieldType.Text, name = "address")
private String address;
@Field(type = FieldType.Text, name = "locality")
private String locality;
@Field(type = FieldType.Keyword, name = "city")
private String city;
@Field(type = FieldType.Keyword, name = "state")
private String state;
private String timing;
@Field(type = FieldType.Nested, includeInParent = true)
private ArrayList<Listing> listings;
Shop () {}
}
我想要两个查询字符串,位置和查询。我希望查询通过字段名称、描述和列表进行搜索,而位置则通过字段地址、位置、城市和州进行搜索。我正在使用此查询进行搜索,但出现异常:
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(boolQuery.must(QueryBuilders.multiMatchQuery(location, "address", "locality", "city", "state"))
.must(boolQuery.should(QueryBuilders.multiMatchQuery(query, "name", "description"))
.should(QueryBuilders
.nestedQuery("listings",
QueryBuilders.multiMatchQuery(query, "listings.name", "listings.description"),ScoreMode.Avg))))
.build();
Iterable<Shop> itr = searchRepository.search(searchQuery);
解决方案
推荐阅读
- c++ - C++中的复制构造函数和赋值运算符
- c# - 静音除我在 C# 中的应用程序之外的所有内容
- javascript - Render list value updated by react hook
- django - django如何将带有img标签的html保存到数据库
- android - android,如何垂直居中对齐RelativeLayout的子项
- css - Atlaskit 模态触摸滚动
- python - TypeError:“分数”类型的对象没有 len()
- python - 类变量返回不正确?
- python - 与常规 mse 不同的自定义损失函数
- javascript - 在 WordPress 中用鼠标旋转图像