elasticsearch 将_复制到elasticsearch 6分析仪,elasticsearch,nest,elasticsearch-6,elasticsearch,Nest,Elasticsearch 6" /> elasticsearch 将_复制到elasticsearch 6分析仪,elasticsearch,nest,elasticsearch-6,elasticsearch,Nest,Elasticsearch 6" />

elasticsearch 将_复制到elasticsearch 6分析仪

elasticsearch 将_复制到elasticsearch 6分析仪,elasticsearch,nest,elasticsearch-6,elasticsearch,Nest,Elasticsearch 6,我正在使用elasticsearch 6 nest for dot.net 我使用了_all字段来搜索所有索引,但现在由于它已被弃用,我需要一个新的解决方案 我找到了复制到选项,这已经足够好了 我的问题是:出于我的项目原因,我曾经向_all字段定义哪个分析器应该使用ngram,哪个搜索分析器应该使用空白 现在,由于copy_to字段没有在映射中声明,我无法定义它,任何想法都将不胜感激 var res = client1.CreateIndex(INDEX_NAME, desc => des

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

我找到了复制到选项,这已经足够好了

我的问题是:出于我的项目原因,我曾经向_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"))
            ))));

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

                    .Map<SampleClass>(m => m
                    .AutoMap() //Still auto map exists if there are attributes on the class definition
                    .Properties(ps => ps //Override auto map
                        .Text(yy=>yy
                            .Name("searchallfield")
                            .SearchAnalyzer("whitespace_analyzer")
                            .Analyzer("ngram_analyzer"))
                        .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))