È possibile combinare le corrispondenze di caratteri jolly e ngram in ElasticSearch? Sto già usando ngrams di lunghezza 3-11.Come utilizzare i caratteri jolly con ngram in ElasticSearch
Come esempio molto piccolo, ho record C1239123 e C1230123. L'utente vuole restituire entrambi. Questa è l'unica informazione che conoscono: C123? 12
Il caso sopra non funzionerà sul mio analizzatore a partita intera perché alla fine manca il 3 alla fine. Avevo l'impressione che le corrispondenze con i caratteri jolly funzionassero fuori dagli schemi, ma se eseguo una ricerca simile a quella sopra non prendo spunto.
Query:
.Search<ElasticSearchProject>(a => a
.Size(100)
.Query(q => q
.SimpleQueryString(query => query
.OnFieldsWithBoost(b => b
.Add(f => f.Summary, 2.1)
.Add(f => f.Summary.Suffix("ngram"), 2.0)
.Query(searchQuery))));
Analyzer:
var projectPartialMatch = new CustomAnalyzer
{
Filter = new List<string> { "lowercase", "asciifolding" },
Tokenizer = "ngramtokenizer"
};
Tokenizer:
.Tokenizers(t=>t
.Add("ngramtokenizer", new NGramTokenizer
{
TokenChars = new[] {"letter","digit","punctuation"},
MaxGram = 11,
MinGram = 3
}))
EDIT: Lo scopo principale è quello di permettere all'utente di indicare al motore di ricerca esattamente dove il i personaggi sconosciuti sono Questo conserva l'ordine di partita. Io non ngram la query, solo i campi indicizzati.
EDIT 2 con più risultati del test: Ho semplificato un po 'troppo il mio esempio precedente. Il linguaggio senza senso era causato da filtri di punteggiatura. Con un esempio corretto non ci sono termini senza senso, ma i risultati non vengono restituiti in un ordine pertinente. Vedendo di seguito, non sono sicuro del motivo per cui i primi 2 risultati corrispondono a tutti. Ngram non viene applicato alla query. ??
Ricerca di c.a123 0,7 0 dà risultati in questo ordine:
- C.A1234.560
- C.A1234.800
- C.A1234.700 < - Non dovrebbe essere questo il primo?
- C.A1234.950
Hai provato 'c123? 12 *'? Va bene combinare le corrispondenze con caratteri jolly e gli ngram in ElasticSearch, ma devi capire come funziona. Altrimenti restituisce risultati imprevisti –
@ Duc.Duong ho provato quello. Restituisce risultati, ma sembra che non abbiano rilevanza per la query. – Brandon
Puoi pubblicare i risultati corrispondenti? Possiamo investigare di più su di esso –