Доброго времени суток.
С Elasticsearch совсем незнаком и нужно сделать поиск по полю, который ищет точное вхождение строки, разбивая предложение на токены только при встрече символа пробела, как анализатор из ES - whitespace, только без учета регистра символов.
Сначала прописал анализатор в ES, но при создании индекса через C# он не виден.
[ElasticProperty(Analyzer = "my_analyzer")]
public string Username { get; set; }
Если вместо "my_analyzer" прописать "whitespace", то все работает, но проблема в том, что здесь учитывается регистр символов, что мне не нужно.
В C# есть код который отвечает за создание или обновление индекса (метод CreateIndex), но никак не могу сделать так, чтобы индекс создавался с пользовательским анализатором.
public void CreateMappingTemplate<T1, T2>()
where T1: class
where T2: class
{
TypeNameResolver r = new TypeNameResolver(_connSettings);
string typeName = r.GetTypeNameFor(typeof(T)); // Здесть тип T, так как название темплэйта создаем от основного типа с которым работаем.
_client.DeleteTemplate(String.Format("scan-mapping-elastic-writer-{0}", typeName));
_client.PutTemplate(String.Format("scan-mapping-elastic-writer-{0}", typeName), t => t
.Template(String.Format("{0}*", typeName))
.AddMapping<T1>(m => m.MapFromAttributes())
.AddMapping<T2>(m => m.MapFromAttributes()));
}
private void CreateIndex(IElasticClient client, string indexName, int shardsCount = 1)
{
client.CreateIndex(indexName , c => c
.NumberOfReplicas(0)
.NumberOfShards(shardsCount)
.Settings(s => s
.Add("merge.policy.merge_factor", "30")
.Add("refresh_interval", "60s")
.Add("routing.allocation.require.master", "true"))
.AddMapping<T>(m => m.MapFromAttributes()));
}
Заранее благодарен за помощь и предоставление какой-либо информации.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как можно реализовать алгоритм задачи комивояжера, используя очередь? Нужно найти исчерпывающим поиском в ширинуЯ понимаю как сделать это...
Есть WinForms программа он получат данные из БД-ки на DataGridView только при нажатии кнопки, это работает
Всем привет! Есть желание сделать простой профильный агрегатор новостей под AndroidДелать планирую на C# и Xamarin