2

ネストされたオブジェクトでのファセット検索の実行に関して問題があります。

たとえば、次のドキュメントがあります。

tags: [
   {
       tag: "tag0",
       tag_url: "http://xxxxxxx.com/tag/tag0/"
   },
   {
       tag: "tag1",
       tag_url: "http://xxxxxx.com/tag/tag1/"
   }
],

categories: [
    {
        category: "cat0",
        category_url: "http://xxxxxx.com/category/cat0/"
    },
    {
        category: "cat1",
        category_url: "http://xxxxxx.com/category/cat1/"
    }
],

ファセットを実行しtags.tagたいtags.tag_url

それでindex:not_analyzed、ネストされたフィールドを作成するためにどのマッピングを使用しますか?

私はこのマッピングを試しました:

    mapping_data[mapping_name]["properties"] = {
        "tags.tag" : {
            "type": "multi_field",
                "fields" : {
                    "tags.tag": {"type" : "string", "index" : "analyzed", "store": "yes"},
                    "untouched" : {"type" : "string", "index" : "not_analyzed"}
                }
        },
        "tags.tag_url" : {
            "type": "multi_field",
                "fields" : {
                    "tags.tag_url": {"type" : "string", "index" : "analyzed", "store": "yes"},
                    "untouched" : {"type" : "string", "index" : "not_analyzed"}
                }
        },
        "categories.category" : {
            "type": "multi_field",
                "fields" : {
                    "categories.category": {"type" : "string", "index" : "analyzed", "store": "yes"},
                    "untouched" : {"type" : "string", "index" : "not_analyzed"}
                }
        }, 
        "categories.category_url" : {
            "type": "multi_field",
                "fields" : {
                    "categories.category_url": {"type" : "string", "index" : "analyzed", "store": "yes"},
                    "untouched" : {"type" : "string", "index" : "not_analyzed"}
                }
        },

}

mapping_data[mapping_name]["properties"] = {
        "tags" : {
            "type": "nested"
        },

        "categories" : {
            "type": "nested"
        }, 
}

しかし、それは私に必要な結果を与えません。

を使用するtype:nestedと、ネストされたフィールドがトークン化されますtype: multi_fieldが、ネストされたフィールドが であると表現することはできませんnot_analyzedtags.tag(バリエーションで使用しましたmulti_fieldが、役に立たなかったことに注意してください。)

では、ネストされたドキュメントのファセットを実現するためにマッピングを表現するにはどうすればよいですか?

PS: http://www.elasticsearch.org/guide/reference/mapping/nested-type/およびhttp://www.elasticsearch.org/guide/reference/mapping/nested-type/は、必要な結果を生成しませんでした私はvalue_fieldを持っていないので。

4

1 に答える 1