How to search via Json in elastic search using spr

2020-02-01 06:42发布

Hi i am trying to search data in elastic search using spring RestTemplate. ElasticSearch have user name and password and i want to search via json.

I wrote code for this but i am not getting any result or exception. I am doing this for the first time in my life so sorry if there is some silly mistake in it.

@Override
    protected List<JobPosts> doInBackground(Object[] objects) {
        List list = null;

        try {

            SearchForm searchForms = (SearchForm) objects[0];




            String plainCreds = "******:********";

            final String url = "*******";
            RestTemplate restTemplate = new RestTemplate();
            restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

            HttpEntity<String> request = new HttpEntity<>(searchJson, headers);
            Log.d("location", "before exchange");
            ResponseEntity<JobPosts[]> response = restTemplate.exchange(url, HttpMethod.GET, request, JobPosts[].class);
            JobPosts[] jobPosts = response.getBody();

            Log.d("location", "after exchange");
            list = Arrays.asList(jobPosts);


        } catch (Exception e) {
            Log.d("location", e.getMessage());
        }

2条回答
对你真心纯属浪费
2楼-- · 2020-02-01 07:19

I would recommend Using the ES Java API as mentioned by Tanay.

Set up your connection like this

//Create the ES clien
org.elasticsearch.client.Client client;

//Setup the connection. Make sure you use port 9300 and not 9200 here.
client = new PreBuiltTransportClient(Settings.EMPTY)
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), "9300"));

//Interact with your index, for example getting an object by its ID
GetResponse response = client.prepareGet("index", "type", "id")
    .setOperationThreaded(false)
    .get();

//Close the connection
client.close();
查看更多
来,给爷笑一个
3楼-- · 2020-02-01 07:20

Unlike other Relational Databases, you don't need Spring RestTemplate to query the elastic database. ElasticSearch comes with inbuilt Java API library. You directly use those functions to create your query and get the results.

Checkout this Link. It has the documentation about how to use the API.

Elastic Search Java API 5.1

查看更多
登录 后发表回答