2014-01-22 4 views
1

Я хочу исключить поле из приведенных документов в ElasticSearch. Я просмотрел этот документ ElasticSearch.org http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html, но это не работает, когда я пытаюсь. Я видел тот же вопрос на SO Is there a way to exclude a field in an Elasticsearch query, но, к сожалению, это также не дает ответ только что вставленного примера с сайта ElasticSearch. Вот мой кодисключить поле из приведенных документов в ElasticSearch

{ 
     "query": 
     { 
      "multi_match": { 
        "fields": [ 
        "user", 
        "email" 
        ], 
        "query": "John", 
        "operator": "and", 
        "type": "phrase_prefix" 
       } 
     } 
    }, 
     "partial_fields" : { 
     "partial1" : { 
      "exclude" : "email" 
     } 
    }, 
     "from" : 0, 
     "size" : 10 
} 

Вот результат выше запроса

{ 
"took": 5, 
"timed_out": false, 
"_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
}, 
"hits": { 
    "total": 2, 
    "max_score": 1, 
    "hits": [ 
     { 
      "_index": "abc", 
      "_type": "users", 
      "_id": "4", 
      "_score": 1, 
      "_source": { 
       "user": "John Smith", 
       "email": "[email protected]", 
       "pic": "95052dc5bb0bd2575.01687359.jpg" 
       "utype": "m" 
      } 
     }, 
     { 
      "_index": "abc", 
      "_type": "users", 
      "_id": "1", 
      "_score": 1, 
      "_source": { 
       "user": "Johnathan", 
       "email": "[email protected]", 
       "pic": "428952deea899c6ad3.87100416.jpg" 
       "utype": "m" 
      } 
     } 
    ] 
} 
} 

в выше запроса все работает хорошо, но это дает результат с Email поле, а также и я хочу, чтобы исключить это Email Поле из документов.

+1

Вы можете указать результат запроса? У меня есть предположение, но сначала нужно увидеть ответ. – shyos

+0

@shyos Я обновил свой код с результатом. –

+1

делает запрос выше с тем же запросом с вашим? Если это так, удалите 1 фигурный скобок '}' после 'type: phrase_prefix'. – shyos

ответ

0

Как выяснилось, этот запрос имеет опечатку. Есть несколько способов проверить ваш запрос перед отправкой.

  • Либо установить elasticsearch-head плагин, который позволяет запрашивать через простой и полезный интерфейс
  • или на базовом уровне, вы можете использовать парсер сайты JSon. Такие как: http://json.parser.online.fr/
+0

Спасибо за дополнительную информацию и поддержку. @shyos, я отправил еще один вопрос, пожалуйста, проверьте, можете ли вы ответить на это. http://stackoverflow.com/questions/21285524/get-only-result-documents-in-elasticsearch-excluding-other-meta-data-with-php-li –

Смежные вопросы