How to search via Json in elastic search using spring resttemplate in android

人盡茶涼 提交于 2019-11-27 04:45:25

问题


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());
        }

回答1:


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




回答2:


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();


来源:https://stackoverflow.com/questions/42240927/how-to-search-via-json-in-elastic-search-using-spring-resttemplate-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!