我是fuzzyjoin::regex_left_join( dt2, copy(dt1)[, regex := paste0("[^a-zA-Z]", Keyword, "|^", Keyword)],
by = c( Text = "regex"))[, -"regex"]
# ID Date Text S.No Keyword
# 1: 1 2/11/2020 wrong_B107A0/act 3 B107A0
# 2: 2 2/12/2020 gra/A02SA_fin 6 A02SA
# 3: 3 2/13/2020 Acc/DKB105A/acnt 1 DKB105A
# 4: 4 2/14/2020 DLB01SA 2 DLB01SA
# 5: 5 2/15/2020 KA02SA_attr_to 5 KA02SA
# 6: 6 2/16/2020 NA <NA>
的{{1}}的新手。我知道有很多答案可以将java
与python
连接起来。但是我很难理解,有些已经过时了。在python中,我可以轻松导入ElasticSearch
模块并连接到它。
这是python中的代码:
java
但是在elasticsearch
中,我在from elasticsearch import Elasticsearch
es = Elasticsearch('localhost', port=9200, http_auth=('username', 'password'), scheme="http")
中包含了java
maven依赖项。我想连接到elasticsearch
。我知道pom.xml
可以完成这项工作。我找到了这段代码。但是不知道如何使它连接到Elastic Search。
elasticsearch
任何人都可以帮助我或向我展示一些示例代码,以使用Java与Elastic Search连接。在python中,它分两行完成。帮助RestHighLevelClient
。
答案 0 :(得分:2)
要使用Java连接elasticsearch,可以使用以下代码:
public class ElasticsearchClient {
//private static final Logger log = LoggerFactory.getLogger(ElasticsearchClient.class);
private final RestHighLevelClient client;
public ElasticsearchClient(ElasticsearchConfig elasticsearchConfig) {
client = new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchConfig.getHost(),
elasticsearchConfig.getPort(), "http")));
}
}
elasticsearchConfiguration:
host: localhost
port: 9200
您甚至可以按照此documentation
中的说明进行操作您需要在pom.xml
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${es.client.version}</version>
</dependency>
更新1
为了在代码本身中添加主机和端口,您可以使用下面提到的代码来代替单独的配置文件:
public class ElasticsearchClient {
private static final Logger log = LoggerFactory.getLogger(ElasticsearchClient.class);
private final RestHighLevelClient client;
public ElasticsearchClient(ElasticsearchConfig elasticsearchConfig) {
client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));
}
答案 1 :(得分:1)
对于当前版本的Java REST Client 7.5,请按照ElasticSearch Client上的说明进行操作:
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http"),
new HttpHost("localhost", 9201, "http")));
Maven repository,ElasticSearch客户端:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.5.2</version>
</dependency>
所有API函数均在客户端网站上指定:搜索,多次搜索,索引等。
定义了“ Java低级REST客户端”基本身份验证here:
final CredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));
RestClientBuilder builder = RestClient.builder(
new HttpHost("localhost", 9200))
.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(
HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder
.setDefaultCredentialsProvider(credentialsProvider);
}
});