使用DBRef的Spring数据MongoDB全文搜索

时间:2018-04-08 09:31:54

标签: spring mongodb spring-boot full-text-search spring-data-mongodb

我尝试使用spring数据mongodb进行全文搜索,但我遇到了问题。我有3个与@DBRef有关的文件:

@Data
@Document
@NoArgsConstructor
public class Order {
   @DBRef
   private Client client;
   @DBRef
   private Company company;
   private long time;
   @TextIndexed
   private String type;
   ...
}

@Data
@Document
@NoArgsConstructor
public class Client {
    @TextIndexed
    private String name;
    @TextIndexed
    private String lastName;
    ...
}

@Data
@Document
@NoArgsConstructor
public class Company {
  @TextIndexed
  private String name;
  private String type;
  ...
}

所以我有OrderRepository,我想在其中实现查询条件,但它不能按我的意愿工作。我的意思是我在OrderRepository中进行查询,它只检查所有@TextIndexed只在哪个顺序。我希望它不仅搜索订单,还搜索相关文档。如果简而言之,我想从OrderRepository中仅搜索订单和相关文档。有可能吗?默认情况下@DBRef不允许它,我不想为每个文档搜索查询创建。例如,我有一个订单,其中客户名称是詹姆斯。当我仅通过名称“James”进行查询时,它应该搜索客户名称为James的所有订单。怎么实现呢? Thnks

1 个答案:

答案 0 :(得分:1)

MongoDB对DBREF的使用有很多限制,更好的方法是使用手动引用,所以如果你使用的是Spring Data MongoDB,请看看RelMongo框架