(std) で始まるテキストにインデックスを付ける必要があるという要件があります。これを再度検索できるようにする必要があります。
すなわち。ドキュメント (html) には次の文が含まれています
(std) misligholdelseserstatning のための Almindelige betingelser
そして、私はクエリできるはずです
(標準)Almindelige betingelser
さて、私はドキュメンテーションをたくさん読んで、( and ) を _ に置き換える charfilter を配置しました。その後、検索クエリでも置き換えるだけで安全だと思ったので、になる
_std_Almindelige betingelser
しかし、何らかの理由でまったく機能していません。_std_Almindelige betingelser
ドキュメントを参照してファセットのリストを返すと、そこに用語があることがわかりますが、検索しても結果がまったく返されません。
これは私のインデックス設定と型マッピングです
var settings = new IndexSettings();
settings.Analysis.CharFilters.Add("parenthesis", new MappingCharFilter
{
Mappings = new[] { "( => _", ") => _" }
});
settings.Analysis.TokenFilters.Add("snowball", new SnowballTokenFilter
{
Language = "Danish"
});
settings.Analysis.Analyzers.Add("content", new CustomAnalyzer
{
CharFilter = new List<string>() { "html_strip", "parenthesis" },
Tokenizer = "whitespace",
Filter = new List<string>() { "lowercase", "snowball" }
});
そして、マッピング
{"searchservicepages":{
"_source":{
"excludes" : ["content"]
},
"properties":{
"content":{
"type":"string",
"index_analyzer"":"content"
}
}
}}