0

(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"
        }
    }
}}
4

1 に答える 1

1

問題はマッピングにあります。あなたはに変更する必要があり"index_analyzer": "content"ます"analyzer":"your_analyzer_name"

あなたのマッピングは私に問題を引き起こしていますが、マッピング後の同じインデックス設定でうまくいきました。

  "testindex": {
        "testdoc": {
          "_source": {
            "excludes": [
              "content"
            ]
          },
          "properties": {
            "content": {
              "type": "string",
              "analyzer": "myAnalyzer"
            }
          }
        }

ところで私はES 0.90.2を使用しています

于 2013-07-25T09:34:13.800 に答える