Отдельно, у меня есть частичный поиск, и я могу искать все поля. Но я не могу использовать частичное сопоставление при поиске, который отображает все поля.Создание запроса ElasticSearch для поиска всех полей и одновременного использования частичного совпадения
Это возвращает мое имя, когда я использую частичное соответствие:
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"}
}
}
}
}
У вас есть ' "_all": { "enabled": true} 'в вашем сопоставлении? см. http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-all-field.html –
@maxivanov Я этого не делал, но сейчас. Посмотрите мое редактирование – Brandon
Можете ли вы воспроизвести его? Я просто не могу: https://gist.github.com/maximivanov/8958787 –