Ho recentemente iniziato ad esplorare il mondo della ricerca e sto cercando di utilizzare ES come indice per il mio MongoDB. Sono riuscito a integrarli con successo, ma trovo l'API di ricerca piuttosto complessa e confusa. L'API Java non è troppo utile neanche. Sono in grado di trovare corrispondenze esatte, ma come faccio le ricerche full-text? Qui è il mio codice:ElasticSearch ricerca full text tramite Java API
Settings settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "elasticsearch").build();
Client client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("host-ip", 9300));
SearchResponse response = client.prepareSearch("mongoindex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(termQuery("name", "*name*"))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
non ho problemi a trovare "name":"testname"
utilizzando .setQuery(termQuery("name", "testname"))
, ma "name":"this is a test name"
non funziona con l'esempio precedente. Che cosa sto facendo di sbagliato?
che è solo il database che sto usando. –