Java中的ElasticSearch

冷却器

我开始在测试项目中使用ElasticSearch,但无法解决所有字段创建搜索的问题。例如,我们有一些单词作为搜索查询,我想使用Java API在ElasticSearch中找到所有索引的对象。

我的obj有:ID,名称,地址等

我搜索了这种信息,并写成这样:

Node node = nodeBuilder().node();
Client client = node.client();

RegexpFilterBuilder qFilter = FilterBuilders.regexpFilter("_all", (".*" + query + ".*").replace(" ", ".*"));
        SearchResponse response = client.prepareSearch(index)
                .setTypes(type)
                .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                .setPostFilter(qFilter)
                .setFrom(0).setSize(100).setExplain(true)
                .execute()
                .actionGet();

 SearchHit[] results = response.getHits().getHits();
 System.out.println("Current results: " + results.length);

我也尝试使用一个字段:

SearchResponse response = client.prepareSearch(index) 
        .setTypes(type)
        .setSearchType(SearchType.QUERY_AND_FETCH)
        .setQuery(termQuery(field, value))
        .setFrom(0).setSize(100).setExplain(true)
        .execute()
        .actionGet();

我总是得到0结果。

您能告诉我,如何在Java中以正确的方式执行此操作吗?

冷却器

好的,我花了更多时间在文档上,并且找到了解决方案,希望它对其他人有帮助!您只需要使用QueryBuilders.multiMatchQuery,值是我们的搜索词,其他字符串是要搜索到的列。

SearchResponse response = client.prepareSearch(index)
        .setTypes(type)
        .setSearchType(SearchType.QUERY_AND_FETCH)
        .setQuery(QueryBuilders.multiMatchQuery(value,
                "name", "address1", "city", "postalCode",
                "countryCode", "airportCode", "locationDescription",
                "shortDescription"
        ))
        .setFrom(0).setSize(100).setExplain(true)
        .execute()
        .actionGet();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java中的Elasticsearch:SearchHit片段缩短了

如何使用java在elasticsearch中AND多个setQuery?

JAVA Spring(JPA)中的PostgreSQL + Elasticsearch同步

Elasticsearch中的存储桶脚本Java API

使用Java在Elasticsearch中通过查询更新

Java API中的Elasticsearch内部命中

elasticsearch Java API 中的多个平均聚合

在Java中动态建立elasticsearch bool查询

如何从Java中的elasticsearch获取命中数据

Elasticsearch:在... / jdk / bin / java的捆绑jdk中找不到Java

如何在Java中从ElasticSearch响应中解析GeoPoint值?

如何在Java API中编写elasticsearch script_score

Java ThreadPoolExecutor用于在ElasticSearch中为文档建立索引

Elasticsearch-在Java中实现完成建议(API版本5!)

如何在ElasticSearch DeleteByQuery Java API中添加URL参数?

Java中的ElasticSearch库无法找到AggregationBuilders.sum方法

java:从elasticsearch索引中获得不同的值

java:Elasticsearch中不区分大小写的搜索

如何在Elasticsearch Java API中通过Alias查找索引?

在ElasticSearch中仅获取_id的有效方法-Java

使用 Java 代码在 ElasticSearch 中索引 PDF 文件

Elasticsearch:批量更新保存在Java String中的多个文档?

Elasticsearch 2.0:如何在Java中通过查询删除

如何在Java中编写Elasticsearch查询聚合?

在Elasticsearch Java客户端中执行UpdateByQueryRequest

如何通过Java API在ElasticSearch中重新编制索引

5.3中的Elasticsearch客户端java.lang.ExceptionInInitializerError

Java API匹配Elasticsearch中的多个字段

使用Java在Elasticsearch中执行按查询更新时的NPE