如何使用Lucene搜索语法“ * /&querytype = full”获得搜索结果?

问题描述

我们想在Azure认知搜索中创建一个自定义分析器,该分析器将包含以下查询字符串的搜索转换为两个令牌:一个1字节字符和一个2字节字符。

我已经测试了以下三件事

  1. 仅使用字符串查询搜索。 1字节和2字节字符都可以正常显示。 (确定)
  2. 使用字符串+“ *”的正则表达式查询搜索。同时显示1字节和2字节字符没有问题。 (确定)
  3. 字符串+“ /。(1字节字符)。” /&querytype = full“使用Lucene搜索语法进行查询搜索不显示任何内容。(NG)

我不知道为什么(2)使用正则表达式成功进行查询搜索,但为什么(3)无法成功。

  1. Query string : 1-byte character (确定模式)
  2. Query string : 1-byte character + "*(regular expression)" (确定模式)
  3. Query string : /.(※1-byte character)./&querytype=full NG模式

[问题]

  1. 您能告诉我如何使用上述3中的查询字符串来搜索1字节和2字节字符吗?
  2. 您能告诉我是否知道为什么上面3中的查询字符串不搜索1字节和2字节字符吗?

解决方法

我不确定我是否理解您的问题,但是我会尽力描述我的理解。

您的索引的文档包含以下文本:

シヤ一ブ

您的索引中包含另一个文档

シャ一プ

两个文档之间的区别在于它们使用单​​字节或多字节字符来描述相同的文本。您的目标是查询シヤ一ブ或シャ一プ都应返回两个文档。除您启用queryType = full之外,此方法均有效。

如果我输错了文字,我深表歉意。我必须对随附的屏幕截图进行OCR。如果您将实际的示例文本粘贴到此处,将很有帮助,我们可以准确地进行复制。

从链接的屏幕截图中,我看到内容存储在名为F_KEYWORDS的属性中。您是否为属性F_KEYWORDS指定了日语分析器?