我有单词“C&K”,"SoamI“,”Ant而行不凡“,"A*B==AB","Ant+Man”,在index of azure search中。
根据文档,为了转义特殊字符,+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /需要用反斜杠()对它们进行前缀,对于不安全和保留的字符,需要在+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /中对它们进行编码。
“C&K”我的搜索网址=> /indexes/{index-name}/docs?api-version=2017-11-11&search=C%5C%26%5C%26K~&queryType=full
为了"SoamI“我的搜索url => /indexes/{index-name}/docs?api-version=2017-11-11&search=So%5C%60am%5C%60I~&queryType=full
我的搜索网址:=> /indexes/{index-name}/docs?api-version=2017-11-11&search=A%5C*B%3D%3DAB~&queryType=full
"A*B==AB“我的搜索url => /indexes/{index-name}/docs?api-version=2017-11-11&search=A%5C*B%3D%3DAB~&queryType=full
"Ant+Man“我的搜索url => /indexes/{index-name}/docs?api-version=2017-11-11&search=Ant%5C%2BMan~&queryType=full
对于所有的他们,我没有得到搜索结果。我得到了"value": []
对于“C&K”我也试过
url => /indexes/{index-name}/docs?api-version=2017-11-11&search=C%5C%26%26K~&queryType=full
url => /indexes/{index-name}/docs?api-version=2017-11-11&search=C%26%5C%26K~&queryType=full
“所以ami”我也试过了
url => /indexes/{index-name}/docs?api-version=2017-11-11&search=So%60am%60I~&queryType=full
它不起作用。我在这里做错什么了?
发布于 2019-01-02 00:07:46
通过标准分析,所有这些都将被索引为多个术语。但是,模糊查询没有进行分析,因此它将尝试将其作为一个单一术语来查找。也就是说,当你索引“ant比对人”时,经过分析,你会发现索引中有"ant“和"man”这两个词。当您搜索Ant||Man时,它将以与索引时大致相同的方式来分析它,但是在搜索Ant||Man~时,查询将不会被分析,而且由于索引中不存在类似的术语,所以不会得到任何匹配项。类似地,对于"A*B==AB“,您可以得到术语"b”和"ab“("a”是带有默认分析的停止词)。
因此,尝试不使用~的查询。
发布于 2019-01-03 01:29:42
除了femtoRgon的响应之外,您可能还需要考虑使用一个自定义分析器,它不会将这些作为多个术语进行索引,如果您总是希望它们是可搜索的。有有关自定义分析器的文档,您可以使用分析API进行测试,以确保给定的分析器按照您的预期工作。
https://stackoverflow.com/questions/53995033
复制相似问题