簡體   English   中英

如何構造具有多個參數的 lucene 搜索查詢

[英]How to construct a lucene search query with multiple parameters

我是 Lucene.net 的新手,在這里我想知道如何像 sql 查詢一樣進行 lucene 搜索查詢。讓我提供更多..

我有一組參數值,假設一個存儲過程有一組參數。現在我想用所有這些參數構建一個查詢。

        searchParams.UseLast = Convert.ToBoolean(base.Arguments["UseLast"]);
        searchParams.LastEditedFrom= Convert.ToDateTime(base.Arguments["LastEditedFrom"]);
        searchParams.LastEditedTo = Convert.ToDateTime(base.Arguments["LastEditedTo"]);
        searchParams.Reviewed = Convert.ToBoolean(base.Arguments["Reviewed"]);
        searchParams.Approved = Convert.ToBoolean(base.Arguments["Approved"]);
        searchParams.Include = Convert.ToBoolean(base.Arguments["Include"]);
        searchParams.IsVisibleToUser = Convert.ToBoolean(base.Arguments["IsVisibleToUser"]);
        searchParams.IsEntry = Convert.ToBoolean(base.Arguments["IsEntry"]);
        searchParams.UserId = Convert.ToInt32(base.Arguments["UserId"]);

        IEnumerable Categories = base.Arguments["Categories"] as IEnumerable;
        IEnumerable Departments = base.Arguments["Departments"] as IEnumerable;

        String mQuery = "How to construct it ....!!!" // Need help in this 

        var query = queryParser.Parse(mQuery);
        indexSearcher.Search(query, collector);

在這里,我想從 lucene 索引中獲取所有記錄,該索引具有上述所有字段的值。

我不清楚您將searchParams用於什么,但是通常您可以在這種情況下使用 Lucene 查詢語法的任何功能構建查詢字符串 ( mQuery )。 這是 Lucene.Net 版本 4.8 Query Parser Syntax文檔的鏈接。

通常,當查詢中列出多個單詞時,它們會被處理為邏輯 OR,但包含所有術語的文檔匹配的排名高於僅包含一個術語的文檔。 因此,例如white dog將匹配包含white dogwhitedog文檔。 如果您只想要與所有術語匹配的文檔,則可以在語句中放入and ,例如small and white and dog如果您只想要包含所有三個術語的文檔,則可以說small and white and dog

要指定要搜索的特定字段,請列出后跟冒號的字段名稱。 例如,您可以搜索UserId:ron and Categories:dogs Lucene 查詢語法還有很多內容,但希望這能讓您入門。 有關更多詳細信息,請參閱我提到的 Lucene 查詢語法文檔。

暫無
暫無

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

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