簡體   English   中英

lucene.net不相關的搜索結果

[英]Irrelevant search results with lucene.net

我一直在使用Lucene.net開發用於企業目錄應用程序的搜索引擎。 但是,當我搜索體育用品商店時,它會返回其他商店(包括體育用品商店)的結果,因為關鍵字商店與此匹配。 因此,我如何確定其應返回與關鍵字sport匹配的結果的優先級

如果有人對此有解決方案,請在這里分享。 任何有用的例子或鏈接將不勝感激。

如果您可以粘貼一些代碼來提供更好的示例,我將非常感激。

但是,從閱讀您的問題后,我認為您需要的是短語查詢,以使Sports Shop的銷售額更高。

我對此查詢的實現是這樣的:

公共列表QueryToPhraseQuery(string pQuery){

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過去之后,我可以對其進行修改以更好地適合您的考試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM