I study elastic search and I follow the next tutorial , but I get the following error
Exception in thread "main" java.lang.IllegalArgumentException: The number of object passed must be even but was [1] at org.elasticsearch.action.index.IndexRequest.source(IndexRequest.java:451) at elastic.elasti.App.lambda$0(App.java:55) at java.util.ArrayList.forEach(ArrayList.java:1249) at elastic.elasti.App.indexExampleData(App.java:53) at elastic.elasti.App.main(App.java:45)
Could you help me fix this?
public class App { public static void main( String[] args ) throws TwitterException, UnknownHostException { System.out.println( "Hello World!" ); List tweetJsonList = searchForTweets(); Client client = TransportClient.builder().build() .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); String index = "tweets_juan"; client.admin().indices() .create(new CreateIndexRequest(index)) .actionGet(); indexExampleData(client, tweetJsonList, index); searchExample(client); } public static void indexExampleData(Client client, List tweetJsonList, String index) { BulkRequestBuilder bulkRequestBuilder = client.prepareBulk(); tweetJsonList.forEach((jsonTweet) -> { bulkRequestBuilder.add(new IndexRequest(index, "tweets_juan") .source(jsonTweet)); }); BulkResponse bulkItemResponses = bulkRequestBuilder.get(); } public static void searchExample(Client client) { BoolQueryBuilder queryBuilder = QueryBuilders .boolQuery() .must(termsQuery("text", "espaΓ±a")); SearchResponse searchResponse = client.prepareSearch("tweets_juan") .setQuery(queryBuilder) .setSize(25) .execute() .actionGet(); } public static List searchForTweets() throws TwitterException { Twitter twitter = new TwitterFactory().getInstance(); Query query = new Query("mundial baloncesto"); List tweetList = new ArrayList<>(); for (int i = 0; i < 10; i++) { QueryResult queryResult = twitter.search(query); tweetList.addAll(queryResult.getTweets()); if (!queryResult.hasNext()) { break; } query = queryResult.nextQuery(); } Gson gson = new Gson(); return (List) tweetList.stream().map(gson::toJson).collect(Collectors.toList()); } }
elasticsearch
Juan
source share