Допустим, я использую это отображение:
PUT test
{
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
}
},
"mappings": {
"testtype": {
"properties": {
"content": {
"type": "text",
"analyzer": "english",
"store": true
}
}
}
}
}
Теперь я могу проиндексировать документ:
PUT test/testtype/0
{
"content": "The Quick Brown Box"
}
И я могу получить его:
GET test/testtype/0
Что вернет меня:
{
"_index": "test",
"_type": "testtype",
"_id": "0",
"_version": 1,
"found": true,
"_source": {
"content": "The Quick brown Fox"
}
}
Я знаю, что в исходном поле у вас должен быть только тот документ, который вы вставили, поэтому я указал в своем сопоставлении, что хочу сохранить свое поле содержимого. Таким образом, запрашивая поле моего хранилища, я ожидаю, что в нем будет то, что сгенерировано моим анализатором, так что-то вроде этого:
"quick brown fox"
Но когда я запрашиваю сохраненное поле:
GET test/testtype/_search
{
"stored_fields": "content"
}
У меня есть именно то, что я написал в своем документе:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "test",
"_type": "testtype",
"_id": "0",
"_score": 1,
"fields": {
"content": [
"The Quick brown Fox"
]
}
}
]
}
}
Итак, мой вопрос: как я могу сохранить в своем эластичном поиске результат того, что сгенерировано моим анализатором?