我是弹性搜索新手。我们正在构建一个带有弹性搜索的Spring boot应用程序。
目前,我们必须使用Spring Boot 2.1.3. RELEASE,但我们可以使用最新的稳定Elastic搜索版本。
做了一些R
1. elasticsearch-rest-high-level-client
2. spring-boot-starter-data-elasticsearch
可能还有其他方法可以将Spring boot与弹性搜索集成在一起。
有谁能帮助我们找出将Spring boot与Elastic search集成的最佳方法吗?
根据以上提供的Spring boot版本,我应该使用哪个版本的Elastic search?
来到Elasticsearch版本,请访问以下网站:
https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#preface.versions
对于将Elasticsearch与SpringBoot结合使用,我们包括三个依赖项:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.0.RELEASE</version>
</dependency>
正如您所看到的,我的Elasticsearch版本是6.2.2(与服务器端版本相匹配),Spring版本是2.1.13。释放。
基本上使用了2个客户端。我建议您使用Rest High Level Client。另一个是传输客户端。
下面介绍了如何将Rest高级客户端集成到应用程序:
@Configuration
public class ElasticClientService extends AbstractElasticsearchConfiguration {
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("localhost:9200").build();
return RestClients.create(clientConfiguration).rest();
}
}
一旦创建了客户端,剩下的就是执行CRUD操作。
@Autowired
ElasticClientService client;
public void save(Object object, String id, String type, String indexName) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> objectMap = objectMapper.convertValue(object, Map.class);
IndexRequest indexRequest = new IndexRequest(indexName, type, id);
indexRequest.source(objectMap);
IndexResponse response = client.elasticsearchClient().index(indexRequest);
}
public void deleteById(String id, String type, String indexName) throws IOException {
DeleteRequest request = new DeleteRequest(indexName, type, id);
DeleteResponse deleteResponse = client.elasticsearchClient().delete(request);
}
以上两个操作在弹性索引中创建一个文档(行),并根据ID从弹性索引中删除一个文档(行)。
有关更多参考,请参阅:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.2/java-rest-high-document-delete.html*
*根据您的需要更改版本
您可以参考此以获得进一步的帮助
问题内容: 我正在将我的ASP.NET Core应用程序升级到V3,并使用Visual Studio 2019进行开发/调试。除此之外,整个过程很顺利: UseWebpackDevMiddleware不再是:https : //github.com/aspnet/AspNetCore/issues/12890。 我现在希望了解每次调试时VS运行webpack的最佳方法,最好是仅在已更改的JS代码上
我试着遵循这里列出的Nutch+ES指南 https://gist.github.com/xrstf/b48a970098a8e76943b9 https://qbox.io/blog/scring-the-web-wit-nutch-for-elasticsearch 然而,我无法让他们的组合工作。基本上,我在Nutch上执行了以下命令: 现在,我想将获取的数据索引到ES中,我按照指南进行了操作
问题内容: 是否可以集成Python和JavaScript?例如,假设您希望能够在JavaScript中定义类并从Python使用它们(反之亦然)。如果是这样,最好的方法是什么?我不仅对这是否可行而且对是否 有人在“严肃的”项目或产品中做到了 感兴趣。 我想举个例子,可以使用Jython和Rhino,但我很好奇是否有人真正做到了这一点,以及是否有针对其他平台的解决方案(尤其是CPython)。 问
问题内容: 集成erlang和python的最佳方法是什么? 我们需要在erlang中调用python函数,并在python中调用erlang函数。目前,我们正在尝试将SOAP用作这两种语言之间的中间层,但是我们有很多“不兼容”的麻烦。您能否建议执行集成的最佳方法? 问题答案: 如erlport所述,您可以在Erlang端使用Erlang端口协议和term_to_binary / binary_t
我有一个二进制搜索树,它的每个节点都有两个值。 所以它的节点是这样的。 我已经根据节点的“name”变量的升序在BST中插入了值。所以树的顺序遍历将按“name”的升序返回节点。 现在我想根据“值”变量的升序显示树节点。无需更改原始树。哪种算法/方法对此最有效?
本文向大家介绍详解Elastic Search搜索引擎在SpringBoot中的实践,包括了详解Elastic Search搜索引擎在SpringBoot中的实践的使用技巧和注意事项,需要的朋友参考一下 实验环境 ES版本:5.3.0 spring bt版本:1.5.9 首先当然需要安装好elastic search环境,最好再安装上可视化插件 elasticsearch-head来便于我们直观地