2015-03-31 21 views
11

Sto cercando di ottenere la mia testa intorno a come sfocata di ricerca funziona su AWS CloudSearchCloudsearch termini e frasi Fuzzy

vorrei trovare "Star Wars", ma nella mia ricerca, ho scriverlo

ster wers 

La logica della mia app si aggiungerà allo sfocato ma non ritorna mai a Star Wars. ho provato:

ster~1 wers~1 
"ster wers"~2 
"ster"~1 "wers"~1 

Che cosa mi manca qui?

risposta

12

Il motivo per cui la query non funziona dipende dal modo in cui CloudSearch è stato creato. Se il campo è indicizzato con lo schema di analisi impostato su English, lo wars verrà archiviato nella sua forma con stemma come war.

Ecco una piccola dimostrazione di come lo stemming sta influenzando la tua query.

Ricerca con le Nazioni Unite dal gambo di query ('wers ster'):

Ricerca con la query non-gambo richiede di abbinare wers-war, che è fuori da 2 caratteri e richiede questa query: q=ster~1+wers~2.

Ricerca con la query stelo ('ster wer'):

Ricerca con la versione a stelo significa che stai corrispondenza wer-war e tu sei solo fuori dal 1 char. Pertanto, ster~1 wer~1 otterrà il risultato desiderato (ovvero corrisponde a star wars).

Come risolvere:

Il caso d'uso che hai descritto funzionerà se si configura il sistema di analisi per il settore in questione non utilizzare alcun derivanti.

  1. A tale scopo, accedere al Web Console AWS e andare a schemi di analisi -> Aggiungi Analisi Schema: enter image description here

  2. Poi vai a Opzioni di indicizzazione e configurare il campo per utilizzare il nuovo no -templando schema di analisi: enter image description here

  3. Invia le tue modifiche e reindicizza.

Questo risolverà il problema, ma ovviamente perderete i vantaggi dello stemming Non puoi avere la tua torta e mangiarla anche tu.