【发布时间】:2017-06-19 15:13:51
【问题描述】:
我们将 Azure 搜索索引用于我们的一个搜索 API。我们在 Azure 搜索索引中有一个字段说显示名称(这是一个字符串字段。要求来自 API,当我们使用显示名称进行搜索时,搜索应该是对字段的精确搜索。
例如: 如果我们搜索“George Joseph”,搜索索引应该只返回与显示名称“George Joseph”完全匹配的记录,而不应该返回名称为“George Joseph John”或 John George Joseph”的记录
有什么办法可以做到吗?
问候,
约翰
【问题讨论】:
-
只是大声思考,你能用
filter代替search吗?所以你的搜索表达式是$filter=DisplaName%20eq%20'George Joseph'。 -
它会支持显示名称的收集吗?比如 $filter=DisplayName%20eq%20'George Joseph'&DisplayName%20eq%20'George John'
-
另外,我们需要对作为集合的 Person 的 Educational 资格实施相同的功能。可以有“学士学位”、“硕士学位”等。在这种情况下可以这样做吗?
-
为什么不呢?这是一个 ODATA 过滤器查询,因此您可以构造类似
$filter=DisplayName%20eq%20'George Joseph'%20or%20DisplayName%20eq%20'George John'的内容。请参阅此链接了解更多详情:docs.microsoft.com/en-us/rest/api/searchservice/…。唯一要注意的是,您要过滤的字段必须设置filterable属性。 -
另一个问题是 $filter 区分大小写。
标签: azure azure-cognitive-search