Я использую Elasticsearch 2.3 - API-интерфейс Nest для поиска данных. Я использую сопоставление атрибутов для документов. Я хотел бы знать, как использовать Phonetic Analyzer, используя сопоставление атрибутов.Elasticsearch 2.3 - гнездо - с помощью фонетического анализатора
Класс документа:
[ElasticsearchType(Name = "contact", IdProperty = nameof(EntityId))]
public class ESContactSearchDocument
{
[String(Name = "entityid")]
public string EntityId { get; set; }
[String(Name = "id")]
public string Id { get; set; }
[String(Name = "name")]
public string Name { get; set; }
[String(Name = "domain")]
public string Domain { get; set; }
[String(Name = "description")]
public string Description { get; set; }
[String(Name = "email")]
public string Email { get; set; }
[String(Name = "firstname", Analyzer = "phonetic")]
public string FirstName { get; set; }
[String(Name = "lastname", Analyzer = "phonetic")]
public string LastName { get; set; }
}
создания индекса и вставки:
var createIndexResponse = serviceClient.CreateIndex(indexName, c => c.Mappings(m => m.Map<ESContactSearchDocument>(d => d.AutoMap())));
var indexManyResponse = await serviceClient.IndexManyAsync(ESMapper.Map<TDocument, ESContactSearchDocument>(documentsBatch), indexName, typeName);
ESMapper используется только для преобразования из одного типа в другой.
Результирующая отображение:
{
"contact-uklwcl072": {
"mappings": {
"contact": {
"properties": {
"description": {
"type": "string"
},
"domain": {
"type": "string"
},
"email": {
"type": "string"
},
"entityid": {
"type": "string"
},
"firstname": {
"type": "string"
},
"id": {
"type": "string"
},
"lastname": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
}
}
Я также установил Phonetic Analysis Plugin
Спасибо за ваш ответ, но приведенный выше код не дает «фонетический» анализатор, я получаю то же самые отображения документа. –
@ShahidAzim вы можете показать код для того, что вы делаете, в вопросе? –
Я включил весь необходимый код. –