Tho*_*mas 5 c# elasticsearch nest
我对ElasticSearch中的字段属性有点挣扎,特别是因为5.x(我正在移植我们的代码)的事情发生了一些变化.
一个例子是:
[Text(Index = false)]
public string Id { get; set; }
[Keyword]
public string Tags { get; set; }
[Text]
public string Title { get; set; }
Run Code Online (Sandbox Code Playgroud)
我有很多这样的字段,但我正在尝试找出以下字段的最佳属性:
很多帖子都引用了ES的文档,但我真的没有看到属性文档的任何清晰度; 它似乎是与那些已经理解了系统的人一起写的.如果有人有像属性及其影响(存储,搜索,分析等)细分的excelsheet那将是太棒了
Rus*_*Cam 12
文档只会随着时间的推移而变得更好; 贡献最受赞赏 :)
回答你的问题:
- 要搜索的文本字段,不进行解释(例如字符串ID).我希望能够搜索确切的字符串,没有别的
使用KeywordAttribute,创建一个具有Keyword数据类型的字段.
- 一个英文文本,我希望能够对单词和邻近区域进行全面搜索.
使用TextAttribute,创建一个具有Text数据类型的字段.默认情况下,使用的分析仪将是Standard Analyzer.根据您的域和搜索条件,您可以使用其他分析器,可以是预配置的,也可以是自定义的.
- 一个枚举,其中值可以存储为有限的字符串列表,我需要将其用作搜索条件
KeywordAttribute如果您想要完全匹配,可以在这里使用.您可能希望不区分大小写地搜索,在这种情况下,您可以使用TextAttribute由Keyword标记化器和Lowercase标记过滤器组成的自定义分析器.
- 标签是一个单词列表但不形成句子; 我需要能够搜索这些内容
如果您正在寻找非结构化搜索,那么请使用TextAttribute.
- 要存储且不可搜索的数字
使用NumberAttribute映射到数字数据类型,使用与POCO类型NumberType相对应的数据,numeric例如for Int32(int),use NumberType.Integer.对于要存储_source但不可搜索的数字,请设置Index=false例如
[Number(NumberType.Integer, Index = false)]
public int MyNumber { get;set; }
Run Code Online (Sandbox Code Playgroud)
Index对应index于数字类型.
- 要存储和搜索的日期
- 要存储但不可搜索的日期
使用DateAttributewithIndex=false
请查看字段映射可用的映射参数的文档.Elasticsearch文档中的参数名称在NEST中以Pascal为基础的名称公开.
| 归档时间: |
|
| 查看次数: |
1822 次 |
| 最近记录: |