项修饰符

您可以修改查询项为搜索选项提供广阔的范围。
支持以下项修饰符:
通配符搜索
Lucene 支持在一个项内的单个和多个字符的通配符搜索。使用问号(?)表示单个字符的通配符搜索,使用星号(*)表示多个字符的通配符搜索。多字符的通配符搜索寻找零个或多个字符。
注意: 通配符 ?* 不能用作搜索的首字符。
示例:
  • 搜索单词 testtext
    te?t
  • 搜索 testteststester
    test*
模糊搜索
模糊搜索是一类即使搜索项拼错或仅指定部分单词也找出匹配项的搜索。要执行模糊搜索,请在项的末尾使用颚化符号(~)。
示例:
  • 搜索拼写与 word 相似的项:
    word~

    该搜索项将与 woodworkdwordwordyfordword 匹配。

邻近搜索
Lucene 支持在记录字段中彼此间短距离的查找。要执行邻近搜索,请使用颚化符号(~),其后的短语结束处跟数字。
示例:
  • 在记录字段中搜索相隔不超过 10 个单词的 和 Beta2
    "Beta1 Beta2"~10
范围搜索
范围搜索使您可以与含有查询所指定的上限和下限之间的字段值的记录匹配。范围查询可以包含上下限或者不包含上下限。
包含上下限范围的查询通过方括号和运算符 TO 来表示:
[LowerBound TO UpperBound]
不包含上下限范围的查询通过大括号和运算符 TO 来表示:
{LowerBound TO UpperBound}

范围查询并不仅仅用于数字字段。您还可以对具有字母值的字段执行范围搜索。按字典顺序进行排序。同样,范围搜索查询返回的记录没有相关度分数。

示例:
  • 查找 SubmitDate 字段值在 20072008 之间(包括上下限)的记录:
    SubmitDate:[2007 TO 2008]
  • 将搜索缩小到月份为 2007 年 11 月:
    SubmitDate:[20071001 TO 20071031]
  • 查找 SubmitDate 字段值从 2008 年 01 月到用户数据库中最新记录(包括上下限)的记录:
    SubmitDate:[20081001 TO *]
  • 查找 Headline 值在 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"

反馈