2015-02-18 3 views
1

У нас есть dataIndex с двумя типами: пользователи и задания.Elasticsearch: больше похоже на этот запрос на несколько типов индексов

users: { 
    tags: ['a', 'b'], 
    locations: ['NY', 'SF'] 
    experience: [ 
     { 
      title: 'Software Engineer', 
      company: 'abc' 
     } 
    ] 
} 

Job: { 
    tags: ['a', 'b'], 
    location: 'NY', 
    title: 'Software Enginner' 
} 

Для данного пользователя мы обвязки, чтобы предложить пользователям и заданий с помощью more_like_this Query

пользователя предложение отлично работает, используя ниже запроса, в котором идентификатор идентификатор пользователя.

"more_like_this": { 
    "fields": ["tags", "locations"], 
    "docs": [ 
     { 
     "_index": "dataIndex", 
     "_type": "users", 
     "_id": id 
     } 
    ], 
} 

Для рабочих мест мы хотим запросить как рабочие места, так и индекс пользователей. В основном сопоставляются рабочие места, такие как местоположения пользователей и теги. Возможно ли это с помощью этого_поточнения?

+0

Я буду ждать ответа, прежде чем я сделать ответ сам, но сейчас кажется, что если у меня есть пользователей и рабочих мест в том же индексе и различных типов, я могу использовать тот же more_like_this запрос, как я использовал для пользователей. Мы должны убедиться, что оба эти типа имеют одинаковые поля. –

+0

Вы с этим справились? У меня такая же проблема. – Ali

+1

@ali Вы можете создать несколько типов в пределах одного индекса, а затем выполнить поиск по нескольким типам. –

ответ

0

Да, это так. Просто не указывайте тип ... например.

GET index_name/_search 
{ 
    "query": { 
    "more_like_this": { 
Смежные вопросы