elasticsearch7.10.2测试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了elasticsearch7.10.2测试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6364字,纯文字阅读大概需要10分钟。
内容图文
![elasticsearch7.10.2测试](/upload/InfoBanner/zyjiaocheng/1037/35df81ad02404d4a981da6266dc3efd4.jpg)
Doc地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.10/index.html
1.pom.xml
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.10.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.10.2</version>
</dependency>
2.Test.java
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Node;
import org.elasticsearch.client.NodeSelector;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.core.GetSourceRequest;
import org.elasticsearch.client.core.GetSourceResponse;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.sort.ScoreSortBuilder;
import org.elasticsearch.search.sort.SortOrder;
public class Test {
public static void main(String[] args) throws IOException {
ArrayList<HttpHost> hostList = new ArrayList<>();
List<Node> nodes = new ArrayList<>();
hostList.add(new HttpHost("127.0.0.1", 9200, "http"));
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(hostList.get(0)));
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.field("title", "test");
builder.timeField("date", new Date());
builder.field("content","Biden didn't mention his predecessor by name, "
+ "but especially in the early moments of his speech, "
+ "it was very clear that the current President lays much of the blame for "
+ "the country's struggles with the coronavirus "
+ "pandemic at the feet of the last President."
+ "A year ago, we were hit with a virus that was met with silence and spread unchecked, "
+ "denials for days, weeks, then months, "
+ "Biden said at one point. "
+ "That led to more deaths, more infections, more stress and more loneliness."
+ "At another point, Biden pulled out his mask "
+ "and expressed amazement that it had been turned into some sort of political statement.") ;
}
builder.endObject();
IndexRequest request = new IndexRequest("cn-news")
.id("3").source(builder);
/*IndexResponse response = client.index(request, RequestOptions.DEFAULT);
System.out.println(response);
client.close();*/
searchSourceWithFulltextMatch(client);
}
/**
* @Title: searchSourceWithDocId
* @Description: 通过DocId查询
* @author: 徐蜀黍
* @date: 2021年3月12日 下午4:03:20
* @param client
*/
public static void searchSourceWithDocId(RestHighLevelClient client) {
try {
GetSourceRequest getSourceRequest = new GetSourceRequest("cn-news", "1");
GetSourceResponse response = client.getSource(getSourceRequest, RequestOptions.DEFAULT);
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* @Title: searchAllSourceWithIndexs
* @Description:查询指定index的全部数据
* @author: 徐蜀黍
* @date: 2021年3月12日 下午4:03:46
* @param client
*/
public static void searchAllSourceWithIndexs(RestHighLevelClient client) {
try {
SearchRequest searchRequest = new SearchRequest("cn-news");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(searchSourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* @Title: searchSourceWithCondition
* @Description:按条件分页查询
* @author: 徐蜀黍
* @date: 2021年3月12日 下午4:04:36
* @param client
* @param condition
*/
public static void searchSourceWithCondition(RestHighLevelClient client, String condition) {
try {
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(Objects.isNull(condition) ? QueryBuilders.matchAllQuery()
: QueryBuilders.queryStringQuery(condition));
sourceBuilder.from(0);
sourceBuilder.size(10);
sourceBuilder.timeout();
SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("cn-news");
searchRequest.source(sourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* @Title: searchSourceWithFulltextMatch
* @Description:全文检索
* @author: 徐蜀黍
* @date: 2021年3月12日 下午4:42:58
* @param client
*/
public static void searchSourceWithFulltextMatch(RestHighLevelClient client) {
try {
SearchRequest searchRequest = new SearchRequest("cn-news");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
// 设置高亮HighlightBuilder
HighlightBuilder highlightBuilder = new HighlightBuilder();
HighlightBuilder.Field highlightTitle = new HighlightBuilder.Field("title");
HighlightBuilder.Field highlightContent = new HighlightBuilder.Field("content");
highlightTitle.highlighterType("unified");
highlightBuilder.field(highlightTitle);
highlightBuilder.field(highlightContent);
// 设置查询QueryBuilders
searchSourceBuilder.query(QueryBuilders.multiMatchQuery("test", "title", "content"))
.sort(new ScoreSortBuilder().order(SortOrder.DESC))
.highlighter(highlightBuilder)
.from(0)
.size(10);
searchRequest.source(searchSourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
内容总结
以上是互联网集市为您收集整理的elasticsearch7.10.2测试全部内容,希望文章能够帮你解决elasticsearch7.10.2测试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。