【发布时间】:2020-12-14 17:20:31
【问题描述】:
在 Azure 搜索中,您可以通过使用 first term || secondterm^2 来提升查询,从而为查询的特定部分赋予更多权重。
您还可以使用search.in() 过滤属于特定组的文档:https://docs.microsoft.com/en-us/azure/search/search-query-odata-search-in-function
$filter=group_ids/any(g: search.in(g, '123, 456, 789'))
我想做的是提升属于某个组的文档,但不限于仅属于该组的文档。
类似:
search=mysearchterm^3&$filter=group_ids/any(g: search.in(g, '123, 456, 789'))^2
但是 (1) 过滤器的提升似乎不起作用,并且 (2) 这将仅限于属于组 123,456,789 的文档。我希望它只在属于它的情况下提升,但不仅限于这些群体。
这可能吗?
但这似乎无关紧要,似乎只能标记顶级字符串字段,而不是集合中的字符串或 int 字段。
更新:
我想我已经想通了:
search=mysearchterm AND (group_id:123)^2
如果您使用的是复杂的集合,它可能是:
search=mysearchterm AND (groups/id:123)^2
【问题讨论】:
-
听起来你的问题的标题应该是“如何通过过滤器提升”。通过过滤器提升是一个常见的用例。例如,当您有一个包含多种文件类型的存储库并且您想要提升某种类型的文件时。
标签: azure azure-cognitive-search azure-cognitive-services