首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与lucene.net无关的搜索结果

与lucene.net无关的搜索结果
EN

Stack Overflow用户
提问于 2018-04-21 09:28:40
回答 1查看 54关注 0票数 1

我一直在使用Lucene.net为业务目录应用程序开发搜索引擎。然而,当我搜索体育商店时,它返回包括体育商店在内的其他商店的结果,因为关键字shop与之匹配。那么,如何优先返回与关键字体育匹配的结果?

如果有人有这方面的解决方案,请在此分享。任何有用的例子或链接将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-07-20 17:08:41

如果你能粘贴一些代码给你一个更好的例子,我会非常感激的。

然而,从阅读你的问题,我认为你需要的是一个短语查询,以给体育商店一个更高的推动力。

这个查询的实现如下:

公共列表QueryToPhraseQuery(string pQuery) {

代码语言:javascript
复制
QueryParsers.Classic.MultiFieldQueryParser oPhraseParser = new QueryParsers.Classic.MultiFieldQueryParser(Version, FieldArray, Analyzer, BoostDictionary);
List<PhraseQuery> lstPhraseQuery = new List<PhraseQuery>();
HashSet<Term> lstTerms = new HashSet<Term>();
oPhraseParser.Parse(pQuery).ExtractTerms(lstTerms);


foreach (var group in lstTerms.GroupBy(x => x.Field))
{
    PhraseQuery oPhraseQuery = new PhraseQuery() { Boost = 10, Slop = 3 };
    foreach (var oTerm in group.ToList())
    {
        oPhraseQuery.Add(oTerm);
        if (oTerm.Field == Field.ImportantField)
            oPhraseQuery.Boost = 30;
    }
    lstPhraseQuery.Add(oPhraseQuery);
}

return lstPhraseQuery;

}

这将在索引中搜索这样的内容,这将完全匹配,并将返回更好的结果和更多的相关性。

attributedescriptions:"something something"~3^10.0 attributemajor:"something something"~3^30.0 description:"something something"~3^10.0 edescription:"something something"~3^10.0

如果你想让我用你的代码给你一个例子,只要通过eit,我就可以修改它,以更好地适应你的考试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49954292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档