Получить все записи без детей, даже если они существуют вasticsearch - PullRequest
0 голосов
/ 14 марта 2019

Я использую каменьasticsearch_rails, чтобы делать запросы на поиск. У меня есть такие сопоставления

mapping do
    indexes :id, type: 'keyword'
    indexes :name, type: 'text'
    indexes :slug, type: 'keyword'
    indexes :variants, type: 'nested' do
      indexes :id, type: 'keyword'
      indexes :sku, type: 'keyword'
      indexes :main, type: 'boolean'
      indexes :price, type: 'float'
    end
  end

def as_indexed_json(options = {})
    as_json(only: ['id', 'name', 'slug'],
            include: {
                variants: {
                    only: ['id', 'sku', 'main', 'price']
                }
            })
  end

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

Я пытаюсь это сделать, потому что, когда у меня есть продукт с большим количеством вариантов (например, продукт с вариантами 2.5k) ,asticsearch возвращает мне всю «коллекцию» (продукт и все его варианты), и если я собираюсь перечислить 20 продуктов с 2k вариантов каждый, это займет вечность.

Я получаю все продукты с простым продуктом. asticsearch .search ('*') запрос

Привет.

1 Ответ

1 голос
/ 26 марта 2019

Чтобы не переносить все исходные данные, используется ключевое словоasticsearch "_source" https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...