詞彙修飾元

您可以修改查詢詞彙來提供廣泛的搜尋選項。
Lucene 支援下列詞彙修飾元:
萬用字元搜尋
Lucene 支援在單一詞彙內執行單一和多個字元的萬用字元搜尋。使用問號 (?) 來執行單一字元的萬用字元搜尋,使用星號 (*) 來執行多個字元的萬用字元搜尋。多個字元的萬用字元搜尋會尋找零或多個字元。
小心: 萬用字元 ?* 不能用作搜尋的第一個字元。
範例:
  • 搜尋單字 testtext
    te?t
  • 搜尋 testteststester
    test*
模糊搜尋
模糊搜尋是一種即使在搜尋詞彙拼錯或僅指定了部分單字的情況下,,仍可尋找相符項的搜尋類型。若要執行模糊搜尋,請在詞彙的結尾使用波狀符號 (~)。
範例:
  • 搜尋一個拼字與 word 相似的詞彙:
    word~

    這個搜尋詞彙會與 woodworkdwordwordyford 以及 word 等單字相符。

近似性搜尋
Lucene 支援在記錄欄位裡尋找相互之間距離較近的單字。若要執行近似性搜尋,請在詞組的結尾使用波狀符號 (~),並在該符號後面加上一個數字。
範例:
  • 搜尋記錄欄位中 和 Beta2 相距 10 個字以內的項目:
    "Beta1 Beta2"~10
範圍搜尋
範圍搜尋允許您比對記錄的欄位值介於查詢指定下限與上限之間的記錄。範圍查詢可以是內含的或排除的。
內含的範圍查詢以方括弧和運算子 TO 來表示:
[LowerBound TO UpperBound]
排除的範圍查詢以大括弧和運算子 TO 來表示:
{LowerBound TO UpperBound}

範圍查詢並非僅供數值欄位使用。您也可以在含有英數值的欄位裡執行範圍搜尋。依辭典編輯方式進行排序。因此,範圍搜尋查詢所傳回的記錄沒有相關的評分。

範例:
  • 尋找提交日期欄位值介於 20072008 之間的記錄,內含:
    SubmitDate:[2007 TO 2008]
  • 將搜索範圍縮小至 2007 年 10 月:
    SubmitDate:[20071001 TO 20071031]
  • 尋找使用者資料庫中提交日期欄位值範圍介於 2008 年 10 月 1 日與最新記錄日期之間的紀錄,內含:
    SubmitDate:[20081001 TO *]
  • 尋找標題值範圍介於 alphadelta 之間的記錄,內含 alpha 並排除 delta
    Headline:[alpha TO delta}

    您的結果集可能包含標題起始於 alphaalpha1betabeta1beta2 的記錄。

增強詞彙相關性
Lucene 會針對符合記錄提供一項由配置分析器所計算的相關性評分。若要在查詢中增強詞彙或詞組的權重,請在詞彙或詞組後面使用脫字符號 (^) 和增強因數(數字)。增強因數愈高,則詞彙或詞組的相關性也愈高。

預設的增強因數為 1。雖然增強因數必須為正數,但它可以小於 1(例如 0.2),以降低包含該詞彙或詞組之記錄的相關性。

範例:
  • 假使您計劃執行下列搜尋:
    beta OR alpha
    若要使含 beta 詞彙的記錄在結果集評分中比含 alpha 詞彙的記錄有更高的相關性,請使用增強符號 ^,後面再加上增強因數:
    beta^4 OR alpha
  • 使包含詞組 beta 7.1 的記錄在結果集評分中比包含詞組 alpha 7.1 的記錄有更高的相關性:
    "beta 7.1"^2 OR "alpha 7.1"

意見