首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转义特殊字符&编码不安全和保留字符Lucene查询语法Azure搜索

转义特殊字符&编码不安全和保留字符Lucene查询语法Azure搜索
EN

Stack Overflow用户
提问于 2019-01-01 11:24:36
回答 2查看 640关注 0票数 1

我有单词“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

它不起作用。我在这里做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-02 00:07:46

通过标准分析,所有这些都将被索引为多个术语。但是,模糊查询没有进行分析,因此它将尝试将其作为一个单一术语来查找。也就是说,当你索引“ant比对人”时,经过分析,你会发现索引中有"ant“和"man”这两个词。当您搜索Ant||Man时,它将以与索引时大致相同的方式来分析它,但是在搜索Ant||Man~时,查询将不会被分析,而且由于索引中不存在类似的术语,所以不会得到任何匹配项。类似地,对于"A*B==AB“,您可以得到术语"b”和"ab“("a”是带有默认分析的停止词)。

因此,尝试不使用~的查询。

票数 2
EN

Stack Overflow用户

发布于 2019-01-03 01:29:42

除了femtoRgon的响应之外,您可能还需要考虑使用一个自定义分析器,它不会将这些作为多个术语进行索引,如果您总是希望它们是可搜索的。有有关自定义分析器的文档,您可以使用分析API进行测试,以确保给定的分析器按照您的预期工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53995033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档