我正在使用响应式 MongoDb,并尝试基于权重实现自由文本搜索
implementation("io.micronaut.mongodb:micronaut-mongo-reactive")
在 POJO 下方
public class Product {
@BsonProperty("_id")
@BsonId
private ObjectId id;
private String name;
private float price;
private String description;
}
试过这个简单的例子
public Flowable<List<Product>> findByFreeText(String text) {
LOG.info(String.format("Listener --> Listening value = %s", text));
Flowable.fromPublisher(this.repository.getCollection("product", List.class)
.find(new Document("$text", new Document("$search", text)
.append("$caseSensitive", false)
.append("$diacriticSensitive", false)))).subscribe(item -> {
System.out.println(item);
}, error -> {
System.out.println(error);
});
return Flowable.just(List.of(new Product()));
}
我认为这不是实现自由文本搜索的正确方法。