如何在android中解析查询搜索案例不敏感()

得意犹堪夸世俗,诏黄新湿字如鸦。这篇文章主要讲述如何在android中解析查询搜索案例不敏感?相关的知识,希望能为你提供帮助。
我使用解析云来存储数据。在这种情况下,我在此表中有一个表“MyUser”我希望在不区分大小写的情况下按名称搜索用户。
搜索工作正常,但搜索操作不区分大小写
我必须搜索不区分大小写
这是我的代码。:-

ParseQuery< ParseObject> query = ParseQuery.getQuery("BetsUpUser"); query.whereContains("name", searchData); query.findInBackground(new FindCallback< ParseObject> () { public void done(List< ParseObject> objList,ParseException e) { if (e == null) { Log.d("score","@@@@Retrieved " + objList.size()+ " scores"); } else { Log.d("score", "@@@Error: " + e.getMessage()); } } });

【如何在android中解析查询搜索案例不敏感()】提前致谢。
答案我解决了不区分大小写的字符串Parse Query的问题
替换线
query.whereContains("name", searchData);


query.whereMatches("name", "("+searchData+")", "i");

另一答案我也遇到了这个问题,并意识到没有太多方法可以做到这一点。来自@ardrian的Another interesting approach使用javascript。对于java来说几乎是一样的。他建议使用可搜索的小写版本再创建一个字段。它看起来如下:
ParseObject gameScore = new ParseObject("BetsUpUser"); gameScore.put("name", name); gameScore.put("name_lowercase", name.toLowerCase()); gameScore.saveInBackground();

在搜索时我们将输入文本转换为小写。这样我们仍然可以使用whereContains()方法,它不会对我们产生太大影响。
ParseQuery< ParseObject> query = ParseQuery.getQuery("BetsUpUser"); query.whereContains("name_lowercase", searchData.toLowerCase()); // the only one change query.findInBackground(new FindCallback< ParseObject> () { public void done(List< ParseObject> objList,ParseException e) { if (e == null) { Log.d("ParseQuery", objList.get(0).get("name")); //name in actual case } else { Log.d("ParseQuery", e.getMessage()); } } });

另一答案请参阅Parse博客上关于实施可扩展搜索的这篇文章。
http://blog.parse.com/2013/03/19/implementing-scalable-search-on-a-nosql-backend/
基本上,您可以使用afterSave事件在对象上保存可搜索字段(即较低的名称)。

    推荐阅读