copy_to elasticsearch 6分析器

时间:2018-02-11 15:25:29

标签: elasticsearch nest elasticsearch-6

我正在使用elasticsearch 6 nest for dot.net 我使用_all字段来搜索所有索引,但现在因为它已被弃用,我需要一个新的解决方案

我找到了copy_to选项,这已经足够了。

我的问题是:我曾经为_all字段定义它应该使用哪个分析器(ngram)以及它应该使用哪个搜索分析器(空白)以用于我的项目原因。

既然我没有在映射中声明copy_to字段,我无法定义它,任何想法都会受到赞赏。

var res = client1.CreateIndex(INDEX_NAME, desc => desc
            .InitializeUsing(indexState)
             .Settings(x => x
                .Analysis(g => g
                    .Tokenizers(t => t
                        .NGram("ngram_tokenizer", y => y
                        .MinGram(3)
                        .MaxGram(7)
                        .TokenChars(
                            TokenChar.Letter,
                            TokenChar.Digit,
                            TokenChar.Punctuation,
                            TokenChar.Symbol
                        )))
                    .Analyzers(o => o
                        .Custom("ngram_analyzer", w => w.Tokenizer("ngram_tokenizer").Filters("lowercase"))
                        .Whitespace("whitespace_analyzer")
                        .Standard("standard_analyzer", e => e.MaxTokenLength(1111)))))
            .Mappings(ms => ms
                .Map<SampleClass>(m => m
                    .AutoMap() //Still auto map exists if there are attributes on the class definition
                    .Properties(ps => ps //Override auto map
                        .Text(s => s
                            .Name(n => n.SampleString)
                            .CopyTo(am=>am.Field("searchallfield")))
                        .Number(s => s
                            .Name(n => n.SampleInteger))
                        .Date(s => s
                            .Name(n => n.SampleDateTime)
                            .Format("MM-DD-YY"))
            ))));

1 个答案:

答案 0 :(得分:1)

显然,您可以在映射中定义copy_to字段

MyFirebaseMessagingService