Отдельно, у меня есть частичный поиск, и я могу искать все поля. Но я не могу использовать частичное сопоставление при поиске, который отображает все поля.
Это возвращает мое имя, когда я использую частичное совпадение:
GET /_search?pretty=true
{
"query": {
"match": {
"FullName": "andon"
}
}
}
Этот поиск выполняется во всех полях, но не выполняет частичное совпадение (0 обращений):
GET /_search?pretty=true
{
"query": {
"match": {
"_all": "andon"
}
}
}
Что мне нужно сделать, чтобы совместить частичное совпадение с поиском по всем полям и типам? У меня много полей и типов, поэтому я надеюсь не указывать их вручную.
Если это имеет значение, я вставляю свои данные из Реки, которая подключается к SQL.
EDIT: Теперь у меня есть поле _all в моем отображении. Кажется, не имеет значения.
PUT /contact/
{
"settings" : {
"index" : {
"analysis" : {
"analyzer" : {
"my_ngram_analyzer" : {
"tokenizer" : "my_ngram_tokenizer"
}
},
"tokenizer" : {
"my_ngram_tokenizer" : {
"type" : "nGram",
"min_gram" : "1",
"max_gram" : "10"
}
}
}
}
},
"mappings": {
"_default_": {
"_all" : {"enabled" : true},
"properties" : {
"Description":{"type":"string","store":"yes", "index_analyzer": "my_ngram_analyzer"},
"OfficePhone":{"type":"string","store":"yes"},
"Email":{"type":"string","store":"yes", "index_analyzer": "my_ngram_analyzer"},
"FullName":{"type":"string","store":"yes", "index_analyzer": "my_ngram_analyzer"},
"ReportsTo":{"type":"string","store":"yes"},
"Department":{"type":"string","store":"yes", "index_analyzer": "my_ngram_analyzer"},
"Title":{"type":"string","store":"yes", "index_analyzer": "my_ngram_analyzer"}
}
}
}
}