【发布时间】:2017-04-10 20:34:58
【问题描述】:
所以我是 Azure 搜索的新手,我才刚刚开始弄明白。我有一个搜索索引,可以查询一个非常简单的 sql 视图以查找匹配记录。我很难找到与我搜索的字词完全匹配的内容。
每当我搜索时,我都会得到包含确切单词的记录。但是我也会得到包含搜索单词的记录,例如,我搜索“类型”并得到“新类型”和“我的类型”。我在搜索时将“类型”括在双引号中。
我使用的是 C# SDK,当我通过 Postman 执行搜索时也会发生这种情况:
https://myapp.search.windows.net/indexes/myindex/docs?$select=AlertDate,DocumentName,City,DocumentType&search=(DocumentType:"Type")&$count=true&queryType=full&searchMode=any&api-version=2016-09-01
知道什么可能导致这种情况以及我如何才能获得完全匹配?我已经阅读了相当多的内容,一些帖子和网页说用双引号将搜索词括起来只会得到确切的词,但这似乎不正确,至少对我来说不是。
编辑:
为了完整起见,我应该添加我在 C# 中使用的调用来检索结果:
var result = await indexClient.Documents.SearchAsync(query, new SearchParameters()
{ Facets = parameters.Facets, QueryType = QueryType.Full, SearchMode = SearchMode.Any,
Top = request.Top, Skip = request.Skip, IncludeTotalResultCount = true });
有时搜索可能只是一个词或多个词,有时它可能是用户从国家和城市等下拉菜单中选择的过滤器,或两者的组合。然后我形成这样的查询字符串:
(Country:"France" OR "Germany") AND (City:"Paris")
如果它还包含搜索词,则查询将如下所示:
"Type" AND (Country:"Italy" OR "France") AND (City:"Paris" OR "Rome")
【问题讨论】:
标签: azure search azure-cognitive-search