Раньше я не использовал специальный анализатор c для своего индекса. В то время у меня возникают проблемы со специальными символами при поиске. Ниже приведен пример слова в поле моего имени.
"5eb9050dbfebbc0018a17c3d_error-2020-6-1-98.log"
В приведенном выше случае при индексировании это обрабатывается как отдельное слово, когда есть специальный символ.
Если я ищу с помощью «error», «log», «2020» , et c .. результаты возвращаются . Но если я буду искать «98.log», «error-2020» возвращаются нулевые результаты.
Итак, я исследовал и обнаружил, что мы можем использовать специальный анализатор для решения этой проблемы. Я добавил токенизатор "keyword_v2". Но ничего не вышло. Теперь оба указанных выше сценария ios не работают. Ниже приводится мое определение индекса.
{
name: indexName,
fields:
[{
name: 'Name',
type: 'Edm.String',
searchable: true,
filterable: false,
retrievable: true,
sortable: false,
analyzer: "keyword-analyzer",
facetable: false,
key: false
}
],
scoringProfiles: [],
defaultScoringProfile: null,
corsOptions: null,
analyzers: [
{
"name": "keyword-analyzer",
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"charFilters": [],
"tokenizer": "keyword_v2",
"tokenFilters": ["lowercase"]
}
],
}
Кто-нибудь может мне помочь с этим. Как достичь своей цели со специальными символами или без них?