Documente Academic
Documente Profesional
Documente Cultură
Stage
Elmaghraoui.ahmed@gmail.com
Stage
Sommaire
I. 1. 2. II. 1. 2. 3. 4. Cration du cluster et de lindex : ............................................................................................................................................. 3 Cration et configuration dun cluster :............................................................................................................................. 3 Cration dindex : ....................................................................................................................................................................... 3 Les mthodes CRUD avec ElasticSearch : ............................................................................................................................... 4 Cration de donne (create):.................................................................................................................................................. 4 Mise jour des donnes (update) : ..................................................................................................................................... 5 Supprimer les donnes avec ElasticSearch : .....................................................................................................................6 La recherche avec ElasticSearch ............................................................................................................................................ 7
Elmaghraoui.ahmed@gmail.com
Stage
I.
import static org.elasticsearch.node.NodeBuilder.nodeBuilder; import org.elasticsearch.node.Node; import org.elasticsearch.client.Client; ... public void initCluster(){ private Node node; private Client client; node=nodeBuilder().clusterName(CLUSTER_NAME).node(); client = node.client(); } ... Cette mthode permet de demmarer un nud ElasticSearch dans un cluster du nom CLUSTER_NAME. Par la suite tout nos index seront crer dans ce serveur.
2. Cration dindex :
Stage
Le TransportClient permet la connexion distance un cluster dElasticSearch utilisant le module de transport. En fait ici on nessaye pas de rejoindre notre cluster dj cr mais on essaye davoir une ou plusieurs adresses de transports pour les utiliser pour assurer la communication entre le client et le cluster. Une fois la connexion est tablie, on crer notre index en spcifiant son nom. Si lindex existe dj une exception se dclanche indiquant lexistence dun index qui a le mme nom qui le notre.
II.
Elmaghraoui.ahmed@gmail.com
Stage
Il ya plusieurs mthode pour gnrer des document sous la format JSON par exemple: Cration manuelle : Comme son titre lindique dans ce cas lutilisateur est oblig dcrire son document JSON a la main. Utilisation dune map : Une map cest une collection de pair cls: valeurs, elle reprsente dune manire efficace le format JSON. La srialisation des Bean : ElasticSearch utilisent dj Jackson sous le paquet org.elasticsearch.common.jackson. Ainsi, on peut ajouter notre propre version Jackson dans le fichier pom.xml ou dans le classpath.
Pour notre projet on a utilis la deuximes mthode dutilisation des Map et spcialement les HashMap<String,Objet> et la mthode prepareIndex() pour la cration dindex. Mthode create () : public void create(String indexName,String,typeName, String id) { String formatJson="{"name":"ahmed","age":23}"; Client client=ClientProvider.instance().getClient(); .prepareIndex(indexName,typeName,id) .setSource(formatJson); }
Cette procdure va nous permettre de crer un document sous lindex indexName qui contiendra les informations suivantes :
Elmaghraoui.ahmed@gmail.com
Stage
public void update(){ Map<String, Object> updateObject = new HashMap<String, Object>(); updateObject.put("field1","content1"); updateObject.put("field2", "content2"); updateObject.put("fieldnum", num); ClientProvider.instance().getClient().prepareUpdate(INDEX_ NAME, TYPE_NAME, "1") .setScript("ctx._source.field1=content1; ctx._source.field2=content2; " + "ctx._source. fieldnum =num") .setScriptParams(updateObject) .execute().actionGet(); }
On prpare un objet de type Map<String,Object> dans lequel on va mettre les donne qui seront misent jour. Aprs on appel la fonction prepareUpdate() pour spcifier lindex choisit. Pour effectuer la mise jour on excute le script de mise jour en appelant la fonction setScript() qui prend en argument le script de lupdate.
public void delete(){ DeleteResponse response = ClientProvider.instance().getClient(). prepareDelete(INDEX_NAME, TYPE_NAME, "8") .execute() .actionGet(); }
Elmaghraoui.ahmed@gmail.com
Stage
public void search(){ String termToSearch="ahmed"; QueryBuilder qb=QueryBuilders.queryString("*"+termToSearch+"*"); SearchResponse searchResponse=ClientProvider.instance().getClient(). prepareSearch(INDEX_NAME).setTypes(TYPE_NAME) .setSearchType(SearchType.QUERY_AND_FETCH). setQuery(qb). setFrom(0).setSize(60).setExplain(true) .execute() .actionGet(); SearchHit[] results=searchResponse.getHits().getHits(); System.out.println("nbre de resultats: " + results.length); for(SearchHit hit :results){ System.out.println("------------------------------"); Map<String,Object> result = hit.getSource(); System.out.println(result); } }
Elmaghraoui.ahmed@gmail.com