Wenn Sie einen benutzerdefinierten Analysator für Azure Search definieren, können Sie einen Token-Filter aus der Liste this definieren. Ich versuche die Suche nach Präfix und Infix zu unterstützen. Zum Beispiel: Wenn ein Feld den Namen enthält: 123 456, möchte ich die durchsuchbaren Begriffe enthalten:Erstellen eines EdgeNGram-Analyzers, der beide Seiten in Azure Search unterstützt
1
12
123
23
3
4
45
456
56
6
Wenn die EdgeNGramTokenFilterV2 verwendet, die den Trick zu tun scheint, gibt es eine Möglichkeit, eine „Seite“ zu definieren, Eigenschaft, aber nur "front" und "back" werden unterstützt, nicht beide. der „Front“ (default) Wert erzeugt, diese Liste:
1
12
123
4
45
456
und Rückseite erzeugt:
123
23
3
456
56
6
ich versuchte zwei Token zwei EdgeNGramTokenFilterV2s verwenden, aber dies erzeugt Begriffe aus der Kombination der beiden Filter, wie beispielsweise : „2“ oder „5“:
1
12
123
23
3
4
45
456
56
6
2 // Unwanted
5 // Unwanted
ich habe auch versucht, einen „Reverse“ Token, aber dies alles umkehrt und die Ergebnisse sind immer noch falsch.
Ich benutze nur ein Suchfeld ("Name") und würde es lieber so bleiben. (Gedanke der Option, ein anderes Feld namens "name_reverse" mit einem anderen Analysator zu verwenden, aber dies ist sehr ineffizient und verursacht eine Menge Kopfschmerzen beim Verbinden der Suchmaschine mit der Datenquelle.
Zum leichteren Nachschlagen ist die aktuelle Erzeugungsanforderung Index:
{
"name": "testindexboth",
"fields": [
{"name": "id", "type": "Edm.String", "key": true },
{"name": "Name", "type": "Edm.String", "searchable": true, "analyzer": "myAnalyzer"}
],
"myAnalyzer": [
{
"name": "myAnalyzer",
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"tokenizer": "standard_v2",
"tokenFilters":["front_filter", "back_filter"]
}],
"tokenFilters":[
{
"name":"front_filter",
"@odata.type":"#Microsoft.Azure.Search.EdgeNGramTokenFilterV2",
"maxGram":15,
"side": "front"
},
{
"name":"back_filter",
"@odata.type":"#Microsoft.Azure.Search.EdgeNGramTokenFilterV2",
"maxGram":15,
"side": "back"
}
]
}
gibt es immer klettern sie die Ergebnisse eine Option, beide zu kombinieren, ohne
Es wird definitiv funktionieren, aber es scheint ein bisschen wie ein Hack, meinst du nicht? Es zwingt mich auch, eine Feldabbildungsfunktion zu verwenden. –