【发布时间】:2019-10-10 06:57:05
【问题描述】:
我一直在尝试创建一个匹配整个字段文本结尾的过滤器。
例如,获取带有文本的文本字段:the brown fox jumped over the lazy dog
我希望它与搜索值以 g 结尾的字段的查询相匹配。比如:
{
"search":"*",
"queryType":"full",
"searchMode": "any",
...
"filter":"search.ismatchscoring('/g$/','MyField')"
}
结果仅是 MyField 包含由字符串中任意位置的单个 g 字符组成的单词的值的记录。
直接使用过滤器也不会产生任何结果:
{
"search":"*",
"queryType":"full",
"searchMode": "any",
...
"filter":"MyField eq '*g'"
}
据我所知,标记化将始终是搜索和过滤的基础,这意味着在上述查询中,$ 被完全忽略,匹配将按单词进行,而不是按字段。
也许我可以在这个字段上使用keyword_v2 分析器,但我会丢失我在正常搜索时使用的标记化。
【问题讨论】:
标签: azure azure-cognitive-search