2016-06-15 46 views
0

我有名稱和姓名屬性的用戶模型,我需要查詢按名稱搜索。 這個代碼現在:Realm.io [java]按組合字段搜索

query 
.beginGroup() 
    .contains("name", search, Case.INSENSITIVE) 
    .or() 
    .contains("surname", search, Case.INSENSITIVE) 
.endGroup() 
.findAll(); 

但是,如果我想搜索傑裏·史密斯,我會寫「傑​​裏SMI」,並不會得到我想要的東西,顯然是因爲有或。我應該怎麼做?

我要創建並維護fullname字段,並將其設置爲名稱/姓氏的設置者並用它進行搜索,這是否是一條好路徑?

回答

1

最簡單的方法是添加名爲「全名」的第三個字段,並在其中添加名稱+姓氏。那麼你只能這樣搜索:

query.contains("full name", search, Case.INSENSITIVE).findAll(); 
+0

誠實,這聽起來像解決方法,因爲它需要維護,例如。看其他領域,不知何故,當領域轉換對象到模型 – Fen1kz

+0

其他選項只是用空格分隔你的「搜索」,獲取名稱和姓氏,並像你一樣搜索。但是你必須確保人們沒有中間名。但我沒有看到我提出的解決方案中的問題,您爲什麼認爲它需要維護? –

+0

如何自動獲取並更新此全名屬性?把它放到名字/姓氏的setters中,如果我使用GSON,每次我解析時手動更新這個字段? – Fen1kz

-1
RealmResults<Event> toEdit = realm.where(Event.class) 
     .equalTo("name", day) 
     .equalTo("surname", month) 
     .findAll(); 

希望這會有所幫助!乾杯!

+0

什麼是事件,日期和月份?這不會匹配'jerry smi',只是完整的名字 –