0

ナビゲーション表記を使用して複数のフィールドにアクセスできません

私のマッピング:

{
"mappings":{
    "document":{
        "properties":{
            "tags":{
                "type":"object",
                "properties":{
                    "title":{
                        "fields":{
                            "partial":{
                                "search_analyzer":"main",
                                "index_analyzer":"partial",
                                "type":"string"
                            },
                            "title":{
                                "type":"string",
                                "analyzer":"main"
                            },
                            "title2":{
                                "type":"string",
                                "analyzer":"main"
                            }
                        },
                        "type":"multi_field"
                    }
                }
            }
        }
    }
},

"settings":{
    "analysis":{
        "filter":{
            "name_ngrams":{
                "side":"front",
                "max_gram":50,
                "min_gram":2,
                "type":"edgeNGram"
            },
            "name_ngrams_back":{
                "side":"back",
                "max_gram":50,
                "min_gram":2,
                "type":"edgeNGram"
            },
            "name_middle_ngrams":{
                "type":"nGram",
                "max_gram":50,
                "min_gram":2
            }
        },

        "analyzer":{
            "main":{
                "filter": ["standard", "lowercase", "asciifolding"],
                "type": "custom",
                "tokenizer": "standard"
            },
            "partial":{
                "filter":["standard","lowercase","asciifolding","name_ngrams"],
                "type": "custom",
                "tokenizer": "standard"
            }
        }
    }
}

}

テストデータ:

curl -XPUT localhost:9200/testindex/document/1 -d '{"title": "Fight for your life"}'
curl -XPUT localhost:9200/testindex/document/2 -d '{"title": "Fighting for your life"}'
curl -XPUT localhost:9200/testindex/document/3 -d '{"title": "Will you just start the    fight"}'

探す:

 curl -XGET 'localhost:9200/testindex/document/_search?q=title:life&pretty=1'                   // Ok
 curl -XGET 'localhost:9200/testindex/document/_search?q=document.title:life&pretty=1'     // Ok

 // Return 0 hits.  I expect this to return same result as the above queries.
 curl -XGET 'localhost:9200/testindex/document/_search?q=title.title2:life&pretty=1'
 curl -XGET 'localhost:9200/testindex/document/_search? q=document.title.title2:life&pretty=1'

クエリを作成するときにマルチフィールドを参照するにはどうすればよいですか?

4

1 に答える 1

1

フィールドにマルチフィールドマッピングを定義しましたが、tags.titleフィールドのインデックス作成と検索を行っていtitleます。このテストデータを試してください:

curl -XPUT localhost:9200/testindex/document/1 -d '{"tags":{"title": "Fight for your life"}}'
curl -XPUT localhost:9200/testindex/document/2 -d '{"tags":{"title": "Fighting for your life"}}'
curl -XPUT localhost:9200/testindex/document/3 -d '{"tags":{"title": "Will you just start the    fight"}}'

次の検索で:

curl -XGET 'localhost:9200/testindex/document/_search?q=title:life&pretty=1'
curl -XGET 'localhost:9200/testindex/document/_search?q=tags.title:life&pretty=1'
curl -XGET 'localhost:9200/testindex/document/_search?q=document.tags.title:life&pretty=1'

curl -XGET 'localhost:9200/testindex/document/_search?q=title2:life&pretty=1'
curl -XGET 'localhost:9200/testindex/document/_search?q=tags.title.title2:life&pretty=1'
curl -XGET 'localhost:9200/testindex/document/_search?q=document.tags.title.title2:life&pretty=1'
于 2012-11-04T03:26:07.620 に答える