Используйте параметр индекса в качестве значения false в поле адреса, которое по умолчанию равно true, чтобы сделать его недоступным для поиска. Как упомянуто в той же официальной ссылке ES:
Опция index определяет, будут ли индексированы значения полей. Он принимает значение true или false и по умолчанию принимает значение true. Поля, которые не проиндексированы, не подлежат запросу.
Позвольте мне показать вам, как вы можете протестировать его, используя REST API, а затем код java (используя клиент высокого уровня покоя) для достижения * 1029. * it.
Отображение
{
"mappings": {
"properties": {
"id": {
"type": "long"
},
"name": {
"type": "text"
},
"designation": {
"type": "text"
},
"address": {
"type": "text",
"index" : false --> made `index` to false
}
}
}
}
Индексировать несколько документов
{
"address" : "USA",
"name" : "Noshaf",
"id" : 234567892,
"designation" : "software engineer"
}
{
"address" : "USA california state",
"name" : "opster",
"id" : 234567890,
"designation" : "software engineer"
}
Простой поисковый запрос на совпадение в формате JSON в address
поле
{
"query": {
"match" : {
"address" : "USA"
}
}
}
Исключение из Elasticsearch четко упомянуто, оно не доступно для поиска
"reason_by": {"type": "invalid_argument_exception", "reason": " Невозможно выполнить поиск по полю [address ], поскольку не проиндексировано. " }