मैं अनुशंसा करता हूं कि आप डिफ़ॉल्ट भाषा के साथ "कोई नहीं" पर सेट एक टेक्स्ट इंडेक्स बनाएं ताकि इसे विशेषक असंवेदनशील बनाया जा सके और फिर निम्नानुसार $ टेक्स्ट खोज कर सकें:
db.Project.createIndex(
{
"WORKER": "text",
"TRABAJADOR": "text"
},
{
"background": false,
"default_language": "none"
}
)
db.Project.find({
"$text": {
"$search": "jesus",
"$caseSensitive": false
}
})
यहां सी # कोड है जो उपरोक्त प्रश्नों को उत्पन्न करता है। मैं अपनी लाइब्रेरी MongoDB का उपयोग कर रहा हूँ।संक्षिप्तता के लिए संस्थाएँ।
using MongoDB.Entities;
using System;
using System.Linq;
namespace StackOverflow
{
public class Program
{
public class Project : Entity
{
public string WORKER { get; set; }
public string TRABAJADOR { get; set; }
}
private static void Main(string[] args)
{
new DB("test");
DB.Index<Project>()
.Key(p => p.WORKER, KeyType.Text)
.Key(p => p.TRABAJADOR, KeyType.Text)
.Option(o => o.DefaultLanguage = "none")
.Option(o => o.Background = false)
.Create();
(new[] {
new Project { WORKER = "JESUS HERNANDEZ DIAZ"},
new Project { TRABAJADOR = "JESÚS HERNÁNDEZ DÍAZ"}
}).Save();
var result = DB.SearchText<Project>("jesus");
Console.WriteLine($"found: {result.Count()}");
Console.Read();
}
}
}