azure поисковый пользовательский анализатор с обработкой специальных символов - PullRequest
0 голосов
/ 05 августа 2020

Раньше я не использовал специальный анализатор 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"]
            }
        ],
}

Кто-нибудь может мне помочь с этим. Как достичь своей цели со специальными символами или без них?

...