2014-02-05 63 views
0

我目前使用輪胎客戶端進行彈性搜索。比方說,我有一個字段,在我的彈性搜索映射中被索引爲長類型的字段。 我想實現這樣的事情:彈性搜索:用通配符搜索整數

search.query {|query| query.string "30*", :fields => ['id']} 

這裏「身份證」是關於我在談論長字段。但是由於我在查詢中指定了字段,通配符不起作用,我最終得到的是完全匹配結果。

但做同樣的事情與_all搜索作爲字段類型無關緊要。我希望此通配符搜索能夠正常工作,同時還要在該特定字段中搜索搜索關鍵字。有沒有辦法做到這一點,而不改變我的映射?

回答

2

感謝@alex的腳本提示。最後我找到了一些有用的東西。唷!

所以最後我做這個(簡述):

search.query do |query| 
    query.filtered do |f| 
     f.filter :script, { 
    :script => "doc['id'].value.toString() ~= '^30[0-9]*$'" 
     } 
    end 
end 

希望它能幫助。

2

我看到未來的解決方案:

+0

您是否碰到過使用腳本的任何輪胎示例?另外,有什麼我們可以在這裏使用正則表達式嗎? –

+0

哦,我看到你找到了解決方案 – Alex

+0

是的,我做到了。謝謝你的提示。我從來沒有想過劇本。 –