我有这样的索引定义
{
"mappings": {
"my_mapping1": {
"dynamic": false,
"_all": { "enabled": false },
"_source": { "enabled": false },
"properties": {
"my_property1": { "type": "long", "store": true },
}
},
"my_mapping2": {
query = QueryBuilders.matchQuery("my_property1", "123123");
Set<String> queryIndices = new HashSet<>();
queryIndices.add("my_index_name");
SearchResponse searchResponse = searchBuilder(SearchType.DFS_QUERY_THEN_FETCH, query, fields,
queryIndices.toArray(new String[queryIndices.size()]), params.getType())
.setSize(size)
.execute().actionGet();
如何指定我正在搜索my_mapping1
而不是my_mapping2
并跟进一个问题,我应该使用长对象来查询matchQuery的类型而不是字符串吗?
通过查看您的源代码,您似乎没有使用从6.0开始可用的官方Java高级休息客户端(JHLRC)
请参考使用JHLRC的官方搜索请求API,其中在可选参数部分下说明了如何根据您的情况my_mapping1
和传递类型名称my_mapping2
。
SearchRequest searchRequest = new SearchRequest("posts");
searchRequest.types("doc"); // here you need to pass your type name.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句