簡體   English   中英

C#-Lucene搜索不適用於少數字符串文字

[英]C# - Lucene search is not working for few string literals

我們已經實現了使用Apache lucene搜索課程的搜索。 一切正常。 但是,我有2條記錄,即“ Make it person”和“ Do it right right”。 當我搜索“ make”“人員”時,我會得到結果,但是當我搜索“ make”時,找不到結果。 但這與“執行”效果很好! 我真的很困惑為什么它不能用於“ make it”。 BTW查詢解析器的定義如下,

private readonly StandardAnalyzer _analyzer;
_analyzer = new StandardAnalyzer(Version.LUCENE_29);
var parser = new MultiFieldQueryParser(Version.LUCENE_29, new[] { "Name",     "Description", "Id" }, _analyzer);

var queryParser = parseQuery(BuildPrefixQuery(input), parser);

var hits = searcher.Search(queryParser, null, 50, Sort.RELEVANCE).ScoreDocs;

&和索引創建代碼為

public void CreateIndex(List<ILucenceProperties> ListILucenceProperties)
    {
var writer = new IndexWriter(_directory, _analyzer, true,     IndexWriter.MaxFieldLength.UNLIMITED);

        foreach (var iLucenceProperties in ListILucenceProperties)
        {
            var document = new Document();

            document.Add(new Field("Id", iLucenceProperties.Id, Field.Store.YES, Field.Index.ANALYZED));
            document.Add(new Field("Name", iLucenceProperties.Name, Field.Store.YES, Field.Index.ANALYZED));
            document.Add(new Field("Description", iLucenceProperties.Description, Field.Store.YES, Field.Index.ANALYZED));
            document.Add(new Field("Category", iLucenceProperties.Category, Field.Store.YES, Field.Index.NO));
            document.Add(new Field("FilterID", iLucenceProperties.FilterID, Field.Store.YES, Field.Index.NO));
            document.Add(new Field("ColumnName", iLucenceProperties.ColumnName, Field.Store.YES, Field.Index.NO));
            document.Add(new Field("AdditionalSearchParameter", iLucenceProperties.AdditionalSearchParameter, Field.Store.YES, Field.Index.NO));
            writer.AddDocument(document);
        }

        writer.Optimize();
        writer.Dispose();
    }

上面的“名稱”字段包含課程名稱,“名稱”包含課程ID,“說明”包含課程ID,依此類推。

我認為問題可能出在解析器/分析器上。 請幫幫我。

StandardAnalyzer過濾掉停用詞,例如“ it”。 但是,當您進行搜索時,會將“ it”作為關鍵字。 您可以使用帶有停用詞列表的StandardAnalyzer構造函數 ,並使用空集對其進行調用。

暫無
暫無

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

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