2014-06-14 143 views
0

我试图执行搜索像谷歌在弹性搜索多个字段中使用Java。想要做的一个非常简单的例子: 在搜索索引中带有短语“东芝我会购买”,“东芝我不想购买”和“东芝摇滚我的世界”中搜索“东芝购买“返回所有3个短语。Elasticsearch搜索像谷歌

如何在Java中执行此操作?

感谢

回答

0

尝试使用String类的split()方法,并分别与每个单词在数据库中搜索。 对于示例 -

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] 
} 

希望这有助于

+0

我想到这个问题的解决方案,但问题是,当我有完全一样的短语查询的midle(“prhase”):例如(结果是与前面的例子没有关系)。另一件与我有关的事情是查询可以使用的通配符。 – amachado

+0

我不明白你的意思是在查询中间的确切短语。关于通配符,如果用户输入的数据库使用相同的通配符,那么它不应该成为问题。 – Pranav

+0

例如,如果您想在谷歌中搜索Hp Probook,如果您在报价之间进行搜索,则会比搜索前期而不是每个词...(更具体的示例:带有“hp laptop probook”和“hp probook laptop”的文档) ,搜索前期(在引号之间)“hp probook”将给出最后一个文档) – amachado