Поиск не возвращает результатов, хотя у меня есть документ, который должен соответствовать запросу.Невозможно найти поле типа вложения в индексированном документе ElasticSearch
У меня есть модуль плагинов-адаптеров ElasticSearch, установленный на https://github.com/elasticsearch/elasticsearch-mapper-attachments. Я также искал тему, а также просмотрел похожие вопросы в переполнении стека, но не нашел ответа.
Вот что я напечатал в Windows 7 командной строки:
c:\Java\elasticsearch-1.3.4>curl -XDELETE localhost:9200/tce
{"acknowledged":true}
c:\Java\elasticsearch-1.3.4>curl -XPUT localhost:9200/tce
{"acknowledged":true}
c:\Java\elasticsearch-1.3.4>curl -XPUT localhost:9200/tce/contact/_mapping -d{\"
contact\":{\"properties\":{\"my_attachment\":{\"type\":\"attachment\"}}}}
{"acknowledged":true}
c:\Java\elasticsearch-1.3.4>curl -XPUT localhost:9200/tce/contact/1 -d{\"my_atta
chment\":\"SGVsbG8=\"}
{"_index":"tce","_type":"contact","_id":"1","_version":1,"created":true}
c:\Java\elasticsearch-1.3.4>curl localhost:9200/tce/contact/_search?pretty
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "tce",
"_type" : "contact",
"_id" : "1",
"_score" : 1.0,
"_source":{"my_attachment":"SGVsbG8="}
} ]
}
}
c:\Java\elasticsearch-1.3.4>curl localhost:9200/tce/contact/_search?pretty -d{\"
query\":{\"term\":{\"my_attachment\":\"Hello\"}}}
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
Обратите внимание, что base64 закодированное значение «Hello» является «SGVsbG8 =», что значение, которое я вставил в «my_attachment» поле документа.
Я предполагаю, что плагин map-attachments был развернут правильно, потому что я не получаю ошибку, выполняющую команду сопоставления выше.
Любая помощь была бы принята с благодарностью.
Я предполагаю, что это анализатор по умолчанию, потому что я не внес никаких изменений в конфигурацию. Я также попытался выполнить поиск с помощью «привет», но не повезло - все равно не возвращает никаких результатов. – zorbathegeek
Чувствуется, что проблема связана с полем типа вложения. Я добавил еще один документ с двумя свойствами со строковыми значениями, и выполнение поиска по ним возвращает ожидаемые результаты. локон -XPUT HTTP: // локальный: 9200/у.т./контакт/3 -d '{ " ПгвЬЫате ":" Джон", "LastName": "Doe"}' локон локальный: 9200/у.т./контакт/_search? pretty -d {"query": {"term": {"firstName": "john"}}} Возвращает один документ, как ожидалось (ответ сокращенно): ... "hits": { " всего»: 1, ... "хиты": [{ "_ID": "3", "_SCORE": 0,30685282, "_source": { "Имя": "Джон", "LastName": «Doe»} }] – zorbathegeek
Оказывается, это была проблема с установкой плагина. Удалена предыдущая установка и переустановка. Сгенерированный индекс с использованием вышеуказанных шагов и поиск вернули правильный набор результатов. Несмотря на это, предложение попробовать все ключевые слова нижнего регистра по-прежнему полезно. Принимая ответ. Благодаря! – zorbathegeek