gpt4 book ai didi

Azure 搜索和破折号

转载 作者:行者123 更新时间:2023-12-01 11:25:32 25 4
gpt4 key购买 nike

我正在使用 Azure 搜索并尝试对文档执行搜索:

看起来好像这样做:/indexes/blah/docs?api-version=2015-02-28&search=abc\-1003

返回与此相同的结果:/indexes/blah/docs?api-version=2015-02-28&search=abc-1003

由于转义反斜杠,第一个返回的结果不应该与第二个返回不同的结果吗?据我了解,反斜杠应该允许对整个“abc-1003”字符串进行精确搜索,而不是执行“not”运算符。

(更多信息:https://msdn.microsoft.com/en-us/library/azure/dn798920.aspx)

我可以让它工作的唯一方法是这样做(注意双引号):/indexes/blah/docs?api-version=2015-02-28&search="abc-1003"

我宁愿不这样做,因为这意味着让用户输入引号,而他们不知道该怎么做。

我是否在期待一些不该期待的东西,或者这可能是 Azure 搜索的错误吗?

最佳答案

首先,前面没有空格的破折号就像破折号,而不是否定运算符。

根据 MSDN 文档 simple query syntax

- Only needs to be escaped if it's the first character after whitespace, not if it's in the middle of a term. For example, "wi-fi" is a single term
<小时/>

其次,除非您使用 custom analyzer for your index ,分析器会将破折号视为空格,并将 abc-1003 分解为两个标记:abc1003

然后,当您将其放在引号中“abc-1003”时,它将被视为对短语abc 1003的搜索,从而返回您所期望的内容。

如果您想在 abc-1003 上精确匹配,请考虑使用过滤器。它速度更快,并且可以将诸如指南或带破折号的文本之类的内容匹配

关于Azure 搜索和破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37601956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com