asticsearch поиск точного соответствия в многозначном поле с URL, относящимися к документу

Я очень новичок в asticsearch и застрял в формировании поисковых запросов, а точнее с помощью ElasticSearch PHP Client

я пытаюсь сделать следующее: у нас есть 500000 документов с различными свойствами, доступными для каждого документа. нам нужно иметь возможность поиска по любому из полей, а именно: поиск по цину или производителю, тегам или URL. В настоящее время я использую следующий синтаксис для поиска:

Я обнаружил, что для точного соответствия мне сначала нужно инициализировать индекс со следующими свойствами:

// Adding a new type to an existing index
$myMappings = array(
    '_source' => array(
        'enabled' => true
    ),
    'properties' => array(
        'urls' => array(
            "index"    => "not_analyzed",
            'type'     => 'string',
            'analyzer' => 'keyword',
        )
    )
);
$params['body'][dupes] = $myMappings;

после того, как я загрузил все данные, я попытался выполнить следующий запрос стиля с asticsearch client-php:

$doc['index'] = 'lookup';
$doc['type']  = 'dupes';

$doc['body']['query']['bool']['should'][]['terms']['tsin'] = (array)$data['tsin'];
$doc['body']['query']['bool']['should'][]['terms']['urls'] = $urls_array;
$doc['body']['query']['bool']['should'][]['terms']['title'] = (array)$data['title'];
$doc['body']['query']['bool']['minimum_should_match'] = 1;

$retDoc = $client->search($doc);

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

Как правильно структурировать запрос, который будет в состоянии получить все результаты, где каждая запись в точности совпадает, включая многозначные поля (в моем примере "URL-адреса")?

hits: {
total: 578363
max_score: 1.9548206
hits: [
    {
        _index: dedupe_lookup
        _type: product
        _id: tseym752t1
        _score: 1.9548206
        _source: {
            tsin: tdfaa
            slug: usb-metallic-i-love-you-hand-gesture-necklace-flash-drive
            title: usb metallic i love you hand gesture necklace flash drive
            manufacturer:
            tags: null
            approved: 0
            urls: [
                http://www.aliexpress.com/item/free-shipping-new-gift-gold-metal-hand-shape-pendant-usb-flash-drive-the-hand-shape-on/1064760529.html
                http://hert.en.ec21.com/unique_hand_gesture_necklace_usb--5017329_6432159.html#
                http://www.wsdeal.com/cu0386y/join.ws
                http://www.fat.com/8-g-love-you-hand-gesture-design-usb-flash-drive-golden-p-59257.html
                http://www.landofthebest.com/8-g-love-you-hand-gesture-design-usb-flash-drive-golden--inf-15888.html
                http://www.madlime.com/4-g-love-you-hand-gesture-design-usb-flash-drive-golden
                http://lady.brando.com/usb-metallic-i-love-you-hand-gesture-necklace-flash-drive_p00594c0005d003.html
            ]
            create_date: 2014-02-13T21:47:07+00:00
            modified_date: 2014-02-14T00:56:08+00:00
        }
    }, { .... more documents like that }

0 ответов

Другие вопросы по тегам