【发布时间】:2022-01-13 08:50:35
【问题描述】:
我正在探索 ACS,看看它是否符合我们的要求。我获取了 Hotels 索引并尝试执行通配符查询,但它没有按预期工作。
例如。对于下面的文件-
"HotelId": "24",
"HotelName": "Gacc Capital",
"Description": "Chic hotel near the city. High-rise hotel in downtown, walking distance to theaters, restaurants and shops, complete with wellness programs.",
"Description_fr": "Hôtel chic près de la ville. Hôtel de grande hauteur dans le centre-ville, à distance de marche des théâtres, des restaurants et des magasins, avec des programmes de bien-être.",
"Category": "Budget",
"Tags": [
"laundry service",
"pool",
"bar"
],
"ParkingIncluded": false
以“Cap”作为起始词的 HotelName 搜索请求不会返回到文档上方。
$filter=search.ismatch('/.Cap.*/', 'HotelName')
Capital 上的搜索请求在哪里返回它。
中缀搜索也是如此。
$filter=search.ismatch('/.*Cap.*/', 'HotelName')
除此之外不返回任何内容。
$filter=search.ismatch('/.Capital.*/', 'HotelName')
我认为这与索引中指定的语言分析器有关,但有没有办法让我的行为就像数据库的工作方式一样?
编辑
我使用示例数据创建了一个不同的索引,并将名称字段的分析器更改为使用基于 Keyword_v2 标记器和小写标记过滤器的自定义分析器,这将按原样存储字符串,如 here 所述
这适用于前缀,中缀搜索例如。
search = Cap*
search = /.*Cap.*/
但是,后缀搜索不起作用 -
search=/.*tal./
应该根据文档here工作
想知道后缀的搜索语法是否不同或者是否有其他方式来执行后缀搜索?
【问题讨论】:
标签: azure search indexing wildcard azure-cognitive-search