通配符检索

可以在搜索词中使用单字符或多字符通配符。? 可以指定为单字符通配符,* 可以指定为多字符通配符。通配符的使用对象是单词。不能对句子进行通配符检索。

使用方法

使用单字符通配符时,使用 ? ,如下所示。

te?t

上述情况下,? 所在位置可以匹配任意 1 个字符,如 text、test 等。

使用多字符通配符时,使用 * ,如下所示。

test*

上述情况下,* 所在位置可以匹配 0 个以上的任意字符,如 test、tests、tester 等。此外,

te*t

也可以像这样在检索词中间使用。另外,

*test

也可以像这样在检索词开头使用通配符。

也可以指定字段进行通配符检索。下面的示例将在 title 字段中搜索包含以 te 开头、以 t 结尾的单词的文档。

title:te*t

如果不指定字段,将以 title 和 content 字段为对象进行通配符检索。

使用条件

使用通配符检索时,请注意以下几点。

  • 通配符针对索引中注册的字符串 (令牌) 进行匹配。由于搜索词不会被重新解析,因此如果使用 bi-gram 等方式创建索引,日语会被当作没有意义的固定长度字符串处理,日语通配符检索将无法达到预期效果。在日语中使用通配符时,请在使用形态素分析的字段中使用。

  • 通配符模式区分大小写。由于注册到索引中的单词通常会转换为小写,因此请在模式中使用小写字母。例如 Test* 无法匹配已转换为小写注册的 test

  • 在开头添加通配符的检索 (例如 *test) 会扫描索引内的所有单词,因此可能需要较长的处理时间。