2016-08-06 30 views
2

Ich habe ein Problem mit Charakterpolitur in MongoDB. Zum Beispiel habe ich das Wort: "śliwka" und wenn ich die vollständige Suche verwenden, konvertiert MongoDB dieses Wort automatisch zu "sliwka", aber wenn ich nach dem Wort "łukasz" suchen möchte MongoDB konvertiert es nicht zu "lukasz".Wie kann ich MongoDB behandeln "ł" wie "l", als Synonym?

Wie kann ich MongoDB behandeln ł und l wie das gleiche Zeichen?

Antwort

1

eine Bibliothek Es Synonyme in MongoDB zu erstellen ist:

https://github.com/seelio/mongoose-synonyms

Nutzungs

Ihr Schema Nach der Definition, laden Sie das Plugin mit dem Wörterbuch für jedes Feld zu verwenden:

var mongooseSynonyms = require('mongoose-synonyms'); 
var MySchema = new mongoose.Schema({ ... }); 
MySchema.plugin(mongooseSynonyms, { 
    dictionary: 'nicknames', 
    fields: ['firstName', '$text.$search'] 
}); 

Der keyOnly stellt sicher, dass jeder Begriff nur durch den Wörterbuchschlüssel ersetzt wird, wodurch alle möglichen Synonyme vermieden werden. Zum Beispiel die für den folgenden Wörterbucheintrag:

dictionary["łukasz"] = ["lukasz"]; 

oder

dictionary["ł"] = ["l"]; 
+0

Vielen Dank. Ich werde es überprüfen :) – Adam

+0

Wie kann ich Abhängigkeit von Java-Sprache injizieren? Ich möchte keine Verbindung mit MongoDB über JS herstellen, da diese Option für mich sehr gefährlich ist :) – Adam