Vì tôi chưa tìm thấy, rất nhiều trợ giúp với tìm kiếm ký tự đại diện / Tìm kiếm toàn văn bằng Mongo, tôi đã nghĩ ra một công việc phù hợp với yêu cầu của mình.
foreach (var doc in batch)
{
if (custDictionary.ContainsKey(projectId))
{
string concatenatedCustomFields = custFieldsList.Aggregate(string.Empty,
(current, custField) =>
current +
(ds.Tables[0].Columns.Contains(custField)
? (ds.Tables[0].Rows[i][custField].GetType().Name == typeof(DBNull).Name
? string.Empty
: ((string) ds.Tables[0].Rows[i][custField]).StripHtml())
: string.Empty));
doc.Add("CustomFieldsConcatenated", concatenatedCustomFields);
}
i++;
}
Tôi đọc danh sách các trường tùy chỉnh cho từng nhóm tài liệu, sau đó tạo một Trường Mongo nối, sau đó sử dụng truy vấn Regex trên trường đó.
Sau đó, để cải thiện hiệu suất của truy vấn đã thêm chỉ mục sau
_mongoConnect.Database?.GetCollection<BsonDocument>("MyCollectionName")
.Indexes.CreateOneAsync(new BsonDocument("CustomFieldsConcatenated", "hashed"), new CreateIndexOptions { Name = "CollectionName_FieldName_Index" });