2014-06-14 190 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