我想问一下我减少通配符查询对性能的影响的方法是否合适-还是是否存在更好的方法。 我必须在RavenDB中执行“两端通配符”类型的查询,并且我想出了这样的方法:
currentSession.query(XYZ.class, Query.index(indexToBeQueried))
.whereEquals("ID", id)
.andAlso()
.search("NAME", "*"+Name+"*");
我的假设是,RavenDB首先通过选择与ID字段 first 相匹配的所有文档来减少要搜索的结果,然后然后对其余的内容执行昂贵的搜索结果集。 这个假设正确吗?在这种情况下,RavenDB是“按顺序”工作还是我需要以其他方式进行此工作?
谢谢!
答案 0 :(得分:2)
不,不是。对查询的两个部分都进行评估,然后合并以找到最终结果集。
最好使用全文搜索,而不是像这样的查询。