elasticsearch 使用自定义分析器时,如何查看分析的文本?
我不知道如何测试我的自定义分析器/查看分析的数据 通常,在创建索引时,我会将自定义分析器添加到“索引设置”中。在这种情况下,我遇到的问题是我没有使用索引,或者至少我认为我没有,我不知道如何将我的自定义分析器添加到Elasticsearch客户端 这是我目前用于测试“分析”部分的方法: 找到它: 在索引中测试自定义分析器 在本例中,我们将向现有索引添加自定义分析器。首先,我们需要关闭索引elasticsearch 使用自定义分析器时,如何查看分析的文本?,elasticsearch,nest,elasticsearch,Nest,我不知道如何测试我的自定义分析器/查看分析的数据 通常,在创建索引时,我会将自定义分析器添加到“索引设置”中。在这种情况下,我遇到的问题是我没有使用索引,或者至少我认为我没有,我不知道如何将我的自定义分析器添加到Elasticsearch客户端 这是我目前用于测试“分析”部分的方法: 找到它: 在索引中测试自定义分析器 在本例中,我们将向现有索引添加自定义分析器。首先,我们需要关闭索引 client.CloseIndex("analysis-index"); 现在,我们可以更新设置以添加分析器
client.CloseIndex("analysis-index");
现在,我们可以更新设置以添加分析器
client.UpdateIndexSettings("analysis-index", i => i
.IndexSettings(s => s
.Analysis(a => a
.CharFilters(cf => cf
.Mapping("my_char_filter", m => m
.Mappings("F# => FSharp")
)
)
.TokenFilters(tf => tf
.Synonym("my_synonym", sf => sf
.Synonyms("superior, great")
)
)
.Analyzers(an => an
.Custom("my_analyzer", ca => ca
.Tokenizer("standard")
.CharFilters("my_char_filter")
.Filters("lowercase", "stop", "my_synonym")
)
)
)
)
);
var analyzeResponse = client.Analyze(a => a
.Index("analysis-index")
.Analyzer("my_analyzer")
.Text("F# is THE SUPERIOR language :)")
);
然后再次打开索引。在这里,我们还要等待多达5秒钟,以使索引的状态变为绿色
client.OpenIndex("analysis-index");
client.ClusterHealth(h => h
.WaitForStatus(WaitForStatus.Green)
.Index("analysis-index")
.Timeout(TimeSpan.FromSeconds(5))
);
索引打开并准备就绪后,让我们测试分析器
client.UpdateIndexSettings("analysis-index", i => i
.IndexSettings(s => s
.Analysis(a => a
.CharFilters(cf => cf
.Mapping("my_char_filter", m => m
.Mappings("F# => FSharp")
)
)
.TokenFilters(tf => tf
.Synonym("my_synonym", sf => sf
.Synonyms("superior, great")
)
)
.Analyzers(an => an
.Custom("my_analyzer", ca => ca
.Tokenizer("standard")
.CharFilters("my_char_filter")
.Filters("lowercase", "stop", "my_synonym")
)
)
)
)
);
var analyzeResponse = client.Analyze(a => a
.Index("analysis-index")
.Analyzer("my_analyzer")
.Text("F# is THE SUPERIOR language :)")
);
你应该试着安装大脑。 安装后,您可以在菜单分析中找到它。然后您可以很容易地看到“按字段类型分析”或“按分析器分析” 这应该会有所帮助