MongoDB获得最佳匹配 - 这可能吗?

时间:2017-07-18 20:44:28

标签: node.js mongodb

我使用MongoDB启用了全文。这是我的剧本:

function bestMatch(name){
  ChebiEntry.find({$text: {$search: escapeString(name)}},
  {score: {$meta: 'textScore'}}, {lean:true},(e,results)=>{
    if (results.length > 0){
      let oneScores = []
      results.forEach((obj)=>{
        if(obj.score===1){
          oneScores.push(obj);
        }
      });
      console.log(oneScores);
    }
  })
  .sort({score: {$meta: 'textScore'}})
}
//prepareDatabase();
bestMatch('K+');

这是我的输出:

[ { _id: 596d55fd2c446456a0cebc1d,
    id: 8345,
    name: 'K+',
    __v: 0,
    score: 1 },
  { _id: 596d55ff2c446456a0ceccb2,
    id: 8345,
    name: 'K(+)',
    __v: 0,
    score: 1 },
  { _id: 596d56072c446456a0ceee6b,
    id: 29103,
    name: 'K(+)',
    __v: 0,
    score: 1 },
  { _id: 596d56072c446456a0cef092,
    id: 29104,
    name: 'K(-)',
    __v: 0,
    score: 1 } ]

我的搜索结果是逐字记录的。然而,它与其他几个点击的得分相同,并不是我搜索的。这个'得分'系统,mongoDB不是很有帮助。

有没有办法改变这个分数系统,让逐字匹配得分更高?还有超过1的结果,这对我的查询来说更糟糕。

0 个答案:

没有答案