如何从mongodb文本搜索中返回找到的术语

时间:2017-05-24 09:55:51

标签: java mongodb search

我将在MongoDB上实施搜索方法。让我们举个例子来解释一下。假设给出的搜索字词为java programming language,我希望查找java programming languageprogramming langaugelangaugejava programmingjava。也就是说,如果没有找到整个术语,我会寻找给定术语的所有可能性。

但问题是我正在创建每个可能性,然后执行一个需要花费大量时间的查询。现在,我想知道是否有可能将所有这些可能性与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();}}

0 个答案:

没有答案