[英]Elasticsarch C# Nest [5.x] attributes
我對ElasticSearch中的字段屬性有點掙扎,特別是因為5.x(我正在移植我們的代碼)的事情發生了一些變化。
一個例子是:
[Text(Index = false)]
public string Id { get; set; }
[Keyword]
public string Tags { get; set; }
[Text]
public string Title { get; set; }
我有很多這樣的字段,但我正在嘗試找出以下字段的最佳屬性:
很多帖子都引用了ES的文檔,但我真的沒有看到屬性文檔的任何清晰度; 它似乎是與那些已經理解了系統的人一起寫的。 如果有人有像屬性及其影響(存儲,搜索,分析等)細分的excelsheet,這將是太棒了
文檔只會隨着時間的推移而變得更好; 貢獻最受贊賞 :)
回答你的問題:
- 要搜索的文本字段,不進行解釋(例如字符串ID)。 我希望能夠搜索確切的字符串,沒有別的
使用KeywordAttribute
,它創建一個具有Keyword
數據類型的字段。
- 一個英文文本,我希望能夠對單詞和鄰近區域進行全面搜索。
使用TextAttribute
,它創建一個Text
數據類型的字段。 默認情況下,使用的分析儀將是Standard Analyzer
。 根據您的域和搜索條件,您可以使用其他分析器,可以是預配置的,也可以是自定義的。
- 一個枚舉,其中值可以存儲為有限的字符串列表,我需要將其用作搜索條件
如果您想要完全匹配,可以在此處使用KeywordAttribute
。 您可能希望不區分大小寫搜索,在這種情況下,您可以將TextAttribute
與自定義分析器一起使用,該分析器由Keyword
標記器和Lowercase
標記過濾器組成 。
- 標簽是一個單詞列表但不形成句子; 我需要能夠搜索這些內容
如果您正在尋找非結構化搜索,請使用TextAttribute
。
- 要存儲且不可搜索的數字
使用NumberAttribute
映射到數字數據類型 ,具有NumberType
對應於numeric
類型的POCO例如Int32
( int
),使用NumberType.Integer
。 對於要存儲在_source
但不能搜索的數字,請設置Index=false
例如
[Number(NumberType.Integer, Index = false)]
public int MyNumber { get;set; }
Index
對應於數字類型的index
。
- 要存儲和搜索的日期
使用與Date
數據類型對應的DateAttribute
- 要存儲但不可搜索的日期
使用DateAttribute
和Index=false
請查看字段映射可用的映射參數的文檔 。 Elasticsearch文檔中的參數名稱在NEST中以Pascal為基礎的名稱公開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.