spring 数据 mongodb 使用 And 运算符的全文搜索

spring data mongodb full text search with And operator

我正在使用 Spring 数据 mongodb 进行全文搜索。

我的用户域 class 是这样的:

@Document
public class User implements UserDetails{
 
 @TextIndexed
 private String name;
 @TextIndexed
    private String location;
}

我有两个用户对象:

user1(name:"dk",location:"Gurgaon, Haryana, India");
user2(name:"Peter",location:"india");

现在我想搜索用户 "dk" 的位置 "india".

为此,我创建了一个 TextCriteria,例如: TextCriteria criteria = TextCriteria.forDefaultLanguage().matching("dk").matching("india");

并且它同时搜索两个用户,即 user1 和 user2。这在 machingAny(String...texts) 的情况下是预期的。

如何创建与要搜索的两个词都匹配的查询。

在 Spring-data-mongodb 中,你可以用那种方式做到这一点

TextCriteria criteria = TextCriteria.forDefaultLanguage().matchingPhrase("dk").matchingPhrase("india")

有关更多信息,您可以阅读本文 http://docs.mongodb.org/manual/reference/operator/query/text/#phrases