我需要搜索“房间”中的关键字列表。目前,我可以搜索单个关键字,例如:
@Query("SELECT * FROM customer where content LIKE '%' || :keyword || '%' and status = 'published'")
LiveData<List<Customer>> getSearchResult(String keyword);
但是我如何以一种简单的方式搜索关键字列表。
有像IN
这样的简单方法吗?
@Query("SELECT first_name, last_name FROM user WHERE region IN (:regions)")
public List<NameTuple> loadUsersFromRegions(List<String> regions);
我知道我可以手动为多个关键字建立查询,但是我想将Collection作为参数传递。
谢谢。
答案 0 :(得分:0)
在 SQL 中,使用 FTS3 或 FTS4 很容易做到这一点,它是全文搜索,这两个是 SQL 中的最新功能,但我正在努力将其配置到我的 android 项目中。我对空间有点了解,但不足以给出准确的答案我自己仍在研究这个问题,但还没有找到答案。如果您找到配置它的方法,请告诉我。我已经在这个问题上讨论了几个星期,但我从对 SQL 的更多了解中知道需要的是 FTS 函数。
答案 1 :(得分:0)
我使用以下代码进行 FTS
搜索。用 OR
String keywordAll = TextUtils.join("* OR *", keywordList);
keywordAll = "*" + keywordAll + "*";
对于使用 MATCH
进行搜索的查询
WHERE Posts MATCH :keyword
希望这会对其他人有所帮助。