弹性搜索自动完成/建议Java
我想在使用JavaAPI的弹性搜索中实现一个边键入边搜索的功能。下面是我想转换为Java的查询。 你知道我如何用Java执行这个查询吗? 这些查询非常相似,但我想至少解决一个 这是我最初的做法:弹性搜索自动完成/建议Java,java,
elasticsearch,Java,
elasticsearch,我想在使用JavaAPI的弹性搜索中实现一个边键入边搜索的功能。下面是我想转换为Java的查询。 你知道我如何用Java执行这个查询吗? 这些查询非常相似,但我想至少解决一个 这是我最初的做法: SearchResponse response = client.prepareSearch("kal") .setTypes("products") .setQuery(multiMatchQuery("description_en", "name",
SearchResponse response = client.prepareSearch("kal")
.setTypes("products")
.setQuery(multiMatchQuery("description_en", "name", "description_en"))// Query
.setFrom(0).setSize(60).setExplain(true)
.get();
SearchHit[] results = response.getHits().getHits();
for (SearchHit hit : results) {
String sourceAsString = hit.getSourceAsString();
Map<String, SearchHitField> responseFields = hit.getFields();
SearchHitField field = responseFields.get("product_id");
Map map = hit.getSource();
System.out.println(map.toString());
}
到底是什么问题?找到正确的java sdk方法?@mesign我编辑了我的问题!:)
POST /kal/products/_search?pretty
{
"suggest": {
"name-suggest" : {
"prefix" : "wine",
"completion" : {
"field" : "suggest_name"
}
}
}
}
GET /kal/products/_search
{ "query": {
"prefix" : {
"name" : "wine",
"description": "wine"
}
}
}
GET /kal/products/_search
{
"query" : {
"multi_match" : {
"fields" : ["name", "description_en"],
"query" : "description_",
"type" : "phrase_prefix"
}
}
}