2016-03-23 2 views
0

Я новичок в Elasticsearch, и я пытаюсь получить все документы, имеющие такой же мобильный тип. Я не мог найти релевантный вопрос, и в настоящее время я застрял.Сравнить документы в Elasticsearch

curl -XPUT 'http://localhost:9200/sessions/session/1' \ 
    -d '{"useragent": "1121212","mobile": "android", "browser": "mozilla", "device": "computer", "service-code": "1112"}' 

EDIT -

мне нужно Elasticsearch эквивалент следующее -

SELECT * FROM session s1, session s2 
where s1.device == s2.device 
+0

В чем проблема? –

+0

Я попробовал что-то это-curl -XGET 'http: // localhost: 9200/sessions/session/_search? Pretty' -d '{ "query": { "filter": { "filter": { " сценарий ": { "сценарий": ". док [\" устройство \"] значение == документ [\ "устройство \"] значение» }} }} }» , который, очевидно, не Работа. Я не уверен, как обращаться к двум различным документам. – user1138406

+1

Я не хочу давать вам решение, поскольку похоже, что вы на самом деле не очень много пробовали, но я укажу вам на правильное направление: вам нужно запустить отфильтрованный запрос терминов. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html и https://www.elastic.co/guide/en/elasticsearch/reference/current/ запрос-DSL-фильтрованной query.html. – maximede

ответ

0

То, что вы пытаетесь достичь, это просто группировка документы на поле через автообъединение.

Аналогичное понятие группировки может быть достигнуто terms aggregation в поиске elastics. Хотя это агрегирование возвращает только показатели уровня группы, такие как count, sum и т. Д. Он не возвращает отдельные записи.

Однако существует еще одна агрегация, которая может быть применена в качестве подагрегирования для агрегирования терминов, top-hits aggregations.

Агрегат top_hits может эффективно использоваться для группировки наборов результатов по определенным полям с помощью агрегатора ковша. Один или несколько ковшовых агрегатов определяют, по каким свойствам набор результатов получает нарезанный в.

Варианты

  • from - Смещение от первого результата, который вы хотите извлечь.
  • size - Максимальное количество совпадающих совпадений для возврата на каждое ведро. По умолчанию возвращаются три лучших совпадения.
  • sort - Как следует сортировать совпадающие совпадения. По умолчанию хиты сортируются по счету основного запроса.

Вот пример запроса

{ 
    "query": { 
    "match_all": {} 
    }, 
    "aggs": { 
    "top-mobiles": { 
     "terms": { 
     "field": "device" 
     }, 
     "aggs": { 
     "top_device_hits": { 
      "top_hits": {} 
     } 
     } 
    } 
    } 
} 
Смежные вопросы