【发布时间】:2017-12-13 06:10:15
【问题描述】:
我使用了 Elastic Search java 客户端, 我正在实现一个搜索应用程序。 (索引已经建好了)
我想重现Elastic Search java客户端,如下查询。
但是无法复制。
如果你熟悉java客户端, 我想让你告诉我。
我要执行的查询(示例字段有java和php)
{
"Query": {
"Bool": {
"Must": [{
"Match": {
"Sample": "java"
}},
{"Match": {
"Sample": "php"
}
}]
}
},
"Size": 50
}
在 java 客户端上组装查询
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery ().
Must (QueryBuilders.matchQuery ("sample", "test")));
SearchRequestBuilder builder = client.prepareSearch ()
.setSize (50)
.setQuery (boolQuery);
System.out.println (builder);
↑“builder”变量的输出内容
{
"Size": 50,
"Query": {
"Bool": {
"Must": [
{
"Match": {
"Sample": {
"Query": "test",
"Operator": "OR",
"Prefix_length": 0,
"Max_expansions": 50,
"Fuzzy_transpositions": true,
"Lenient": false,
"Zero_terms_query": "NONE",
"Boost": 1.0
}
}
}
],
"Disable_coord": false,
"Adjust_pure_negative": true,
"Boost": 1.0
}
},
"Ext": {}
}
输出时,匹配中包含额外的属性。 而且,我仍然不知道如何匹配多个单词。
有人,请把你的智慧借给我。
环境
- 语言:Java 8
- 框架:Spring
- Elasticsearch 客户端(jar)版本
* org.elasticsearch:5.1.1
* org.elasticsearch.client:5.1.1 - Elasticsearch 的版本:5.3.1
【问题讨论】:
标签: java elasticsearch