Я учусь использовать поиск azure, и я не нахожу способ поиска термина со средним да sh в поле ItemId, не важно, будет ли термин для поиска в начале или в середина.
У меня есть эти поля с данными в моем индексе
+-----+--------------------+-------------+
| Cat | ItemId | Description |
+-----+--------------------+-------------+
| 100 | 400800-1100103U | desc item 1 |
| 100 | 400800-11001066 | desc item 2 |
| 100 | 400800-11001068 | desc item 3 |
| 101 | 400800-110010F6 | desc item 4 |
+-----+--------------------+-------------+
Это моя конфигурация поля индекса:
+-------------+-------------+-----------+-----------+-----------+------------+
| Field Name | Retrievable | Filerable | Sortable | Facetable | Searchable |
+-------------+-------------+-----------+-----------+-----------+------------+
| Cat | OK | OK | OK | OK | X |
| ItemId | OK | OK | OK | OK | OK |
| Description | OK | | | | |
+-------------+-------------+-----------+-----------+-----------+------------+
И это мой пользовательский анализатор для поля ItemId сгенерировать только один токен, даже если у него есть средний да sh.
{
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"name": "keyword_lowercase",
"tokenizer": "keyword_v2",
"tokenFilters": [
"lowercase"
],
"charFilters": []
}
Если я ищу по этому запросу: $select=RowKey&search=400800-1100*
, я получаю следующие результаты:
- 400800-1100103U
- 400800-11001066
- 400800-11001068
- 400800-110010F6
Но если я попробую поискать с средний термин, подобный этому: $select=RowKey&search=RowKey:(00800-1100*)~
Я получаю 0 результатов.
Итак, как мне найти термин со средним значением da sh в ItemId, не важно, если термин для поиска это в начале или в середине?