标签: resthighlevelclient

ElasticsearchStatusException 包含无法识别的参数:[ccs_minimize_roundtrips]]]

我正在尝试在 ElasticSearch 服务器上做一个简单的搜索并得到以下错误

ElasticsearchStatusException[Elasticsearch exception [type=illegal_argument_exception, reason=request [/recordlist1/_search] contains unrecognized parameter: [ccs_minimize_roundtrips]]]
Run Code Online (Sandbox Code Playgroud)

查询字符串: {"query":{"match_all":{"boost":1.0}}}

我正在使用:elasticsearch-rest-high-level-client(maven artifact)

SearchRequest searchRequest = new SearchRequest(INDEX);
        
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(QueryBuilders.matchAllQuery());
        searchRequest.source(searchSourceBuilder);
        
        try 
        {
            
            
            System.out.print(searchRequest.source());
            SearchResponse response = getConnection().search(searchRequest,RequestOptions.DEFAULT);
            SearchHit[]  results=response.getHits().getHits();
            for(SearchHit hit : results)
            {
                String sourceAsString = hit.getSourceAsString();
                System.out.println( gson.fromJson(sourceAsString, Record.class).year);
            }
            
        } 
        catch(ElasticsearchException e) 
        {
            e.getDetailedMessage();
            e.printStackTrace();
        } 
        catch (java.io.IOException ex)
        {
            ex.getLocalizedMessage();
            ex.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

elasticsearch elasticsearch-7 resthighlevelclient

10
推荐指数
1
解决办法
2万
查看次数

记录通过 ElasticSearch 高级 Java 客户端构建的用于调试的 JSON 查询?

我在 Spring Boot 应用程序中使用 ElasticSearch 高级客户端 Java API。我想记录使用高级客户端 API 构建的查询以进行调试。

我的问题是我的 application.properties 文件中需要什么样的设置才能打开从我的应用程序构建的 JSON 查询?

我在 application.properties 文件中尝试了以下属性。但是,它不会打印使用各种查询构建器构建的 JSON 查询。

logging.level.org.elasticsearch.client=TRACE
logging.level.org.elasticsearch.client.sniffer=TRACE
logging.level.org.elasticsearch=TRACE
Run Code Online (Sandbox Code Playgroud)

logging elasticsearch resthighlevelclient

9
推荐指数
2
解决办法
2484
查看次数

通过JAVA API将映射放入ElasticSearch中

我想通过 JAVA API 对字段进行映射,但失败了。以下是详细信息:

我的数据结构是:

{
  "mje-test-execution-id": "464b66ea6c914ddda217659c84a3cb9d",
  "jvm-free-memory": 315245608,
  "jvm-total-memory": 361758720,
  "system-free-memory": 0,
  "jvm-max-memory": 7600078848,
  "system-total-memory": 34199306240,
  "memory-time-stamp": "2020-03-12T05:12:16.835Z",
  "mje-host-name": "CN-00015345",
  "mje-test-suite-name": "SCF Test no mje version",
  "mje-version": "1.8.7771-SNAPSHOT",
  "mje-test-artifact-id": "msran-regression-tests",
  "mje-test-version": "1.8.7771-SNAPSHOT",
  "stp-id": "vran-stp",
  "mje-test-location": {
    "lat": 58.41,
    "lon": 15.62
  }
}
Run Code Online (Sandbox Code Playgroud)

我想做的是:将“mje-t​​est-location”类型设置为“geo_point”

我的代码片段:

public void postMapping(String indexName, String field, String type) throws IOException {
        GetIndexRequest request = new GetIndexRequest(indexName);

        boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
        if (!exists) {
            LOGGER.info("index {} does not exist. Now to post mapping.", indexName); …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch resthighlevelclient

5
推荐指数
1
解决办法
2150
查看次数

如何在 Java SDK 中使用 OpenSearchClient 搜索包装查询?

我是开放搜索的新手。

我正在努力利用 OpenSearch 的 Java SDK。
我知道这包含两个供客户端使用的 java 类:

  1. OpenSearchClient
  2. RestHighLevelClient


我知道RestHighLevelClient在elasticsearch 7.x 中已弃用,并且驼峰式和蛇形式之间的转换是不可能的。

因此,在使用 时OpenSearchClient,我发现 的包装器查询不存在OpenSearchClient


所以,我想问的是:
如何使用 进行包装查询OpenSearchClient


当前的逻辑RestHighLevelClient是:

String query = "{\"term\":{\"name.keyword\":{\"value\":\"bob\"}}}"

BoolQueryBuilder queryBuilder = new BoolQueryBuilder()
        .must(new WrapperQueryBuilder(query));

RestClientBuilder builder = getRestClientBuilder();
SearchResponse searchResponse;
try (RestHighLevelClient highLevelClient = new RestHighLevelClient(builder)) {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
            .query(queryBuilder).from(0).size(10);

    SearchRequest searchRequest = Requests.searchRequest("my_index")
            .source(searchSourceBuilder);   

    searchResponse = highLevelClient.search(searchRequest, RequestOptions.DEFAULT); 
}

Run Code Online (Sandbox Code Playgroud)



感谢您分享您的知识。

java opensearch resthighlevelclient

5
推荐指数
0
解决办法
2246
查看次数

映射定义不能嵌套在类型 [_doc] 下,除非 include_type_name 设置为 true

我的 API 版本是 6.3,我尝试创建索引。失败说“映射定义不能嵌套在类型 [_doc] 下,除非 include_type_name 设置为 true”。这是我的代码:

CreateIndexRequest indexRequest = new CreateIndexRequest("user");

request.source("{\n" +
        "    \"settings\" : {\n" +
        "        \"number_of_shards\" : 1,\n" +
        "        \"number_of_replicas\" : 0\n" +
        "    },\n" +
        "    \"mappings\" : {\n" +
        "        \"_doc\" : {\n" +
        "            \"properties\" : {\n" +
        "                \"message\" : { \"type\" : \"text\" }\n" +
        "            }\n" +
        "        }\n" +
        "    },\n" +
        "    \"aliases\" : {\n" +
        "        \"twitter_alias\" : {}\n" +
        "    }\n" + …
Run Code Online (Sandbox Code Playgroud)

java rest-client elasticsearch resthighlevelclient

1
推荐指数
2
解决办法
5955
查看次数

如何将 Spring Boot 与 Elasticsearch 7.3 连接

我正在使用 Elasticsearch 7.3 并且无法将其连接到我的 Spring boot 应用程序以使用ElasticsearchRepository.


@Configuration
public class ElasticSearchConfig {
    @Value("${elasticsearch.host:localhost}")
    public String host;
    @Value("${elasticsearch.port:9300}")
    public int port;

    public String getHost() {
        return host;
    }

    public int getPort() {
        return port;
    }

    private int timeout = 60;

    @Bean
    public RestHighLevelClient client() {
        System.out.println("host:" + host + "port:" + port);
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "changeme"));
        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
        builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(timeout * 1000).setSocketTimeout(timeout * 1000)
                .setConnectionRequestTimeout(0)); …
Run Code Online (Sandbox Code Playgroud)

spring elasticsearch spring-boot spring-data-elasticsearch resthighlevelclient

0
推荐指数
1
解决办法
4094
查看次数