Я новичок в поиске эластичности, и я экспериментировал с ним за последние несколько дней. Я не могу выполнить правильное сопоставление, поскольку все типы данных, упомянутые в сопоставлении, сопоставляются с типом «слово» вместо соответствующих типов. Вот отображение я сделалэластичный поиск «слово» тип данных: картирование некорректно
POST my_index
{
"settings" : {
"analysis" : {
"analyzer" : {
"lowercase_analyzer" : {
"type" : "custom",
"tokenizer" : "keyword",
"filter" : ["lowercase"]
}
}
}
},
"mappings" : {
"my_type" : {
"properties" : {
"name" : {"type" : "string" ,"index" : "not_analyzed" },
"field0" : {
"properties" : {
"field1" : {"type" : "boolean" },
"field2" : {"type" : "string" },
"field3" : {"type" : "date", "format" : "yyyy-MM-dd HH:mm:ss SSSSSS" }
}
}
}
}
}
}
Чтобы проверить отображение, я использую «_analyze» апи следующим
GET my_index/_analyze
{
"field" : "name",
"text" : "10.90.99.6"
}
, который дает мне следующий результат
{
"tokens": [
{
"token": "10.90.99.6",
"start_offset": 0,
"end_offset": 10,
"type": "word",
"position": 0
}
]
}
Я ожидая, что «тип» в результате будет «строка». Однако я не мог понять, почему он возвращает тип «слово». То же самое происходит и с другими полями, когда я отправляю данные типа boolean или метки времени во вложенных полях, используя _analyze api.
GET my_index/_analyze
{
"field" : "field0.field1",
"text" : "true"
}
Результат
{
"tokens": [
{
"token": "true",
"start_offset": 0,
"end_offset": 4,
"type": "word",
"position": 0
}
]
}
Где я делаю неправильно в моем отображении.
Кроме того, такого типа данных «слова» нет в elastic search reference api.
Спасибо. Это помогло. –
Прохладный. Рад, что это помогло! – Val