elasticsearch 使用Nest使用English Analyzer创建索引
我正在使用nest创建Elasticsearch索引。我有两个问题: 问题1。如何添加设置以使用英语analyzer(标准analyzer有回退功能) 以下是我创建索引的方式:elasticsearch 使用Nest使用English Analyzer创建索引,elasticsearch,nest,elasticsearch,Nest,我正在使用nest创建Elasticsearch索引。我有两个问题: 问题1。如何添加设置以使用英语analyzer(标准analyzer有回退功能) 以下是我创建索引的方式: Uri _node = new Uri("elasticUri"); ConnectionSettings _connectionSettings = new ConnectionSettings(_node) .DefaultIndex("MyIndexName") .D
Uri _node = new Uri("elasticUri");
ConnectionSettings _connectionSettings = new ConnectionSettings(_node)
.DefaultIndex("MyIndexName")
.DefaultMappingFor<POCO>(m => m
.IndexName("MyIndexName")
);
IElasticClient _elasticClient = new ElasticClient(_connectionSettings);
var createIndexResponse = _elasticClient.CreateIndex("MyIndexName", c => c
.Mappings(m => m
.Map<POCO>(d => d.AutoMap())
)
);
Uri\u node=newuri(“elasticUri”);
ConnectionSettings\u ConnectionSettings=新的ConnectionSettings(\u节点)
.DefaultIndex(“MyIndexName”)
.DefaultMappingFor(m=>m
.IndexName(“MyIndexName”)
);
IElasticClient\u elasticClient=新的elasticClient(\u连接设置);
var createIndexResponse=\u elasticClient.CreateIndex(“MyIndexName”,c=>c
.Mappings(m=>m
.Map(d=>d.AutoMap())
)
);
看看这些例子,我也不确定我应该把什么叫做“英语关键词”,“英语词干分析器”等等
问题2:如果我使用英语分析器,Elasticsearch会自动意识到“烧烤”和“烧烤”是同义词吗?或者我需要显式地将同义词列表传递给同义词吗 请查看的嵌套文档 简单地演示了如果需要自定义分析的任何部分,如何使用内置的分析组件,以自定义分析器的身份重新实现
english
分析器。如果不需要这样做,只需使用english
作为字段分析器的名称即可
client.CreateIndex("my_index", c => c
.Mappings(m => m
.Map<POCO>(mm => mm
.AutoMap()
.Properties(p => p
.Text(t => t
.Name(n => n.MyProperty)
.Analyzer("english")
)
)
)
)
);
client.CreateIndex(“我的索引”,c=>c
.Mappings(m=>m
.Map(mm=>mm
.AutoMap()
.Properties(p=>p
.Text(t=>t
.Name(n=>n.MyProperty)
.Analyzer(“英语”)
)
)
)
)
);
将对POCO
上的MyProperty
字段使用内置的english
分析器
english
分析器不会为您执行自动同义词扩展,您需要配置与搜索问题相关的同义词。关于同义词,你有两种选择
您可以同时使用这两种方法,即为您希望与搜索用例相关的同义词编制索引,并在查询时添加新的同义词,因为您发现它们与您的用例相关。非常感谢Russ。我会通过在POCO类中的MyProperty上添加:[Text(Analyzer=“english”)]属性来实现同样的效果吗?如果我采用第一种方法,是否有可以下载和使用的通用同义词的标准列表?使用该属性将起作用,您还需要调用
AutoMap()
,以便考虑该属性。关于同义词,这是一个非常广泛的问题。可以使用诸如WordNet()之类的公共数据集。请务必阅读有关同义词()的最终指南