Azure搜索:通配符查询不适用于日语/中文字符

时间:2020-04-15 05:43:04

标签: azure-cognitive-search

我使用icu_tokenizer和自定义分析器为日语单词创建搜索索引。索引已成功创建。将icu_tokenizer用于亚洲语言,比默认的Azure搜索令牌生成器效果更好。

现在,当我对字符串Ex使用查询时:-赤城我从索引中看到多个搜索结果(总计131)。但是,当我对相同单词使用通配符搜索时,例如:赤城*(在单词末尾添加*)或/赤城。* /(使用正则表达式搜索查询),我看到0个搜索结果。奇怪的是*似乎可以与单个日语字符赤*一起使用,从而为我提供了与赤相同数量的搜索结果。但是,一旦我将日语字符的数量从1增加,带*的通配符查询就会停止工作,并返回0个搜索结果。我正在使用querytype = full(Lucene语法查询)在Azure门户的搜索浏览器上测试所有这些查询

在我的应用程序中,搜索词通常用作前缀搜索,因此通常我们在搜索字符串的末尾添加*以获取搜索结果,但看起来这些带有日文字符的lucene通配符查询不起作用。任何想法,当使用日语字符给出搜索字符串时,如何使这些前缀查询(在搜索字符串末尾使用通配符*)起作用?

任何快速帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

我现在已对安装进行了测试,可以确认通配符仅在使用日语分析器时适用于日语内容。

在我的示例中,我使用未定义特定分析器的属性Body设置了一个索引。然后,我设置了另一个索引,其中Body使用ja.microsoft语言分析器。两个索引中的内容相同。然后,我尝试使用尾随通配符搜索自动车(汽车)。

自动车*使用日语分析仪从我的索引返回多个匹配。如果未定义特定的分析器,则不会从索引返回任何匹配。

答案 1 :(得分:0)

很抱歉,您的回复很晚。 您是否尝试过使用其中一种日语分析仪?例如,ja.microsoft

此外,如果您想使用前缀搜索,则可以尝试使用suggester feature进行实验,该方法在这种情况下非常有效。

相关问题