我有以下查询(MongoMapper / Rails): Card.where(:card_tags => {:$ all => search_tags}
其中card_tags是一个字符串标签数组,search_tags是搜索字符串的数组。目前,如果有人搜索“雪”,则不会返回标记为“滑雪板”的结果。
如何修改此查询以搜索card_tags中的任何字符串是否包含search_tags中的任何字符串?我们会想到正则表达式,但不确定语法是否为数组......
由于
答案 0 :(得分:1)
您可以使用正则表达式,但是您将进行完整的收集扫描 - 这对性能不利。
只有在“以”搜索类型“开头”时才能使用带索引的正则表达式,但我怀疑你是否想限制自己。
对于全文搜索,最好使用一些外部搜索服务 - 例如Lucene,ElasticSearch或Solr。
请参阅此文章:like query in mongoDB