mongo实现全文检索,使用多字段进行模糊查询
目录
mongo实现全文检索,使用多字段进行模糊查询
1.公司要进行mongo实现全文检索,在mongo的官网可以看到mongo实现全文检索,链接:
2.进行测试,运行结果如图:
3.我们的项目是中文的,建立stores的collection,数据准备如下:
4.建立索引,然后搜索是否关键字,效果如下:
5.总结:mongo的全文搜索并不支持中文的分词,或者是模糊查询,mongo的全文索引是根据英文的分词来搜索的
6.解决项目问题:
我们使用springboot来操作mongo数据库,使用多字段的模糊查询
public List<ParameterDefinition> searchParameter(String searchCondition) {
Query query = new Query();
Criteria criteria =new Criteria();
criteria.orOperator(
Criteria.where("name").regex("^.*"+searchCondition+".*$"),
Criteria.where("usages").regex("^.*"+searchCondition+".*$"),
Criteria.where("typeName").regex("^.*"+searchCondition+".*$"),
Criteria.where("unit").regex("^.*"+searchCondition+".*$"),
Criteria.where("comments").regex("^.*"+searchCondition+".*$")
);
query.addCriteria(criteria);
return mongoTemplate.find(query,ParameterDefinition.class);
}