我将在MongoDB
上实施搜索方法。让我们举个例子来解释一下。假设给出的搜索字词为java programming language
,我希望查找java programming language
,programming langauge
,langauge
,java programming
和java
。也就是说,如果没有找到整个术语,我会寻找给定术语的所有可能性。
但问题是我正在创建每个可能性,然后执行一个需要花费大量时间的查询。现在,我想知道是否有可能将所有这些可能性与or
函数合并并返回找到的术语。
我的意思是,在一天结束时,了解哪种可能性的短语对我来说很重要。有没有办法实现这样的方法?
简单来说,我需要一种方法将所有查询实现为一个查询使用或函数,并返回数据库的哪一部分或在数据库中引起命中。
与此同时,我正在使用java并将一些分数应用于数据库的不同领域。
如果有帮助,这是我的代码:
private String performQuery(String searchString, String jsonString, DBCollection collection,
String searchString_original, HashMap<String, String> searchTermsFound) {
// To be able to score the results and show them in order, we use the
// following code. The weights of the fields are already determined in
// options of createIndex()
BasicDBObject textSearch = new BasicDBObject("$search", searchString);
BasicDBObject search = new BasicDBObject("$text", textSearch);
BasicDBObject meta = new BasicDBObject("$meta", "textScore");
BasicDBObject score = new BasicDBObject("score", meta);DBCursor cursorDoc = collection.find(search, score).sort(score).limit(limit);
while (cursorDoc.hasNext()) {
String oneItemFound = cursorDoc.next().toString();
String id = new JSONObject(oneItemFound).get("_id").toString();}}