Ich lerne über elastische Suche und ich folge the next tutorial. In diesem Tutorial werden Twittern von Twiter als Beispieldaten verwendet. Methode tweetJsonList gibt ein Beispiel zurück. Ich versuche, dies im Index "tweets_juan" zu speichern und "tweet" einzugeben. Die Anwendung läuft ohne Probleme, aber wenn ich alle Dokumente mit (http://localhost:9200/tweets_juan/tweet/_search?q=:) suche, finde ich nichts. Könnten Sie mir bitte helfen zu überprüfen, was hier passiert?Elastische Suche und Twitter Datenbeispiel
public class App
{
@SuppressWarnings("unchecked")
public static void main(String[] args) throws TwitterException, UnknownHostException
{
System.out.println("Hello World!");
List<String> 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();
save(client, tweetJsonList, index);
searchExample(client);
}
public static void save(Client client, List<String> tweetJsonList, String index) {
BulkRequestBuilder bulkRequestBuilder = client.prepareBulk().setRefresh(true);
for (String data : tweetJsonList) {
String indexName = index;
String typeName = "tweet";
String json = new Gson().toJson(data);
System.out.println("Juan Debug:" + data);
bulkRequestBuilder.add(client.prepareIndex(indexName, typeName).setSource(json));
}
bulkRequestBuilder.execute().actionGet();
}
public static void searchExample(Client client) {
BoolQueryBuilder queryBuilder = QueryBuilders
.boolQuery()
.must(termsQuery("text", "Baloncesto"));
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());
}
}
Try Sarching nach Typen auf der Suche einstellen. '' Client.prepareSearch ("tweets_juan") setTypes ("Tweet") .setQuery (Querybuilder) .setSize (25) .execute() .actionGet(); '' – ryanlutgen
@ryanlutgen nur ich versuche das, aber ich bekomme nichts – Juan