2017-10-07 1 views
0

Bitte helfen Sie mich Akzent empfindlich in einer Cloudant QueryWie kann ich Akzent-sensitiv ignorieren, wenn ich eine Regex-Abfrage in Cloudant Query verwende?

ignorieren Ich fand im Internet eine Methode zu ignorieren Groß-und Kleinschreibung (?i), es funktioniert gut. Aber funktioniert nicht mit akzentsensitiv. Diese

ist ein Teil meines Cloudant Abfrage:

{ 
    "modelo": { 
    "$regex": "(?i)sábado" 
    } 
} 

Dank !!

+0

AFAIK, Sie können Akzent-unempfindlich nicht durch Regex übereinstimmen, stattdessen müssen Sie diese Zeichen vor dem Abgleich durch Regex -HTH;) ersetzen. –

+0

ok Danke !! @ shA.t. Vielleicht kannst du mir bitte ein Beispiel deiner Lösung geben? Danke noch einmal! –

+0

Mögliches Duplikat von [Abfrage - Groß-/Kleinschreibung und Akzent unempfindlich] (https://stackoverflow.com/questions/35546549/query-case-and-accent-insensitive) –

Antwort

0

ich die Lösung gefunden: Nur müssen jeden Vokal ändern in der Zeichenfolge nach dem Sie suchen möchten der jeweilige Vokal.

0

Wie der erste erwähnte Kommentator werden Sie wahrscheinlich die Zeichen in Ihrer Suche ersetzen müssen. Zum Beispiel könnten Sie Ihre Suche so etwas wie diese

ändern
{ 
    "$or": [ 
    {"modelo": {"$regex": "(?i)sábado"}}, 
    {"modelo": {"$regex": "(?i)sabado"}} 
    ] 
} 

Wenn Sie die Kontrolle über die Daten haben, wie es in Cloudant gespeichert ist, könnte es einfacher sein, wenn Sie das Akzent-Zeichen auf dem Weg in ersetzen. Wenn Sie der ursprüngliche Wert, den Sie ein neues Feld für das Suchen hinzufügen konnten. Sie könnten beispielsweise modelo auf sábado setzen und dann ein weiteres Feld wie modelo_search hinzufügen und den Wert auf sabado setzen. Dann, wenn Sie Ihre Suche durchführen verwenden Sie das modelo_search Feld und ersetzen Sie die Akzente in der Suchzeichenfolge, etwa so:

{ 
    "modelo_search": { 
    "$regex": "(?i)sabado" 
    } 
} 
+0

Danke für Ihre Antwort, aber die Sache ist, dass wir das brauchen Die Parameter in der Datenbank haben Vorrang, da die Parameter in Spanisch sind. Die Suche muss akzentunabhängig sein. –

Verwandte Themen