2014-06-14 2 views
0

J'essaye d'effectuer une recherche comme google fait dans elasticsearch dans les champs mutiple utilisant Java. Un exemple très simple de vouloir que je suis en train de faire: Ayant des documents dans l'index avec les phrases: "Toshiba je vais acheter", "Toshiba je ne veux pas acheter" et "Toshiba rock mon monde" avec la recherche " Toshiba acheter "renvoie toutes les 3 phrases.Elasticsearch recherche comme google

Comment puis-je effectuer cela en Java?

Merci

Répondre

0

Essayez d'utiliser la méthode split() de la classe String et la recherche dans la base de données avec chaque mot séparément. Pour exemple-

String input = "Toshiba buy"; 
String words[] = input.split(" "); 
// this will split at every <space>. You could also use another de-limiter for exactly where you would like to split the sentence 

for(int i=0;i<words.length;i++) 
{ 
    //search in your database using words[i] 
} 

Hope this helps

+0

je pensais à cette solution, mais le problème est quand j'ai l'expression exacte (le « Prhase ») dans midle de la requête: Par exemple (le résultat est pas lié à l'exemple previouse) . Une autre chose qui me préoccupe sont les caractères génériques que la requête peut avoir. – amachado

+0

Je ne comprends pas ce que vous entendez par phrase exacte au milieu de la requête. À propos des caractères génériques, si l'utilisateur entre les mêmes caractères génériques que ceux utilisés par votre base de données, cela ne devrait pas poser de problème. – Pranav

+0

Par exemple si vous voulez rechercher dans google pour Hp Probook si vous mettez entre guillemets que google cherchera la prhase au lieu de chaque mot ... (plus concret exemple: documents avec "hp laptop probook" et "hp probook laptop" , recherche de la phase (entre guillemets) "hp probook" donnera le dernier document) – amachado

Questions connexes