SlideShare una empresa de Scribd logo
1 de 56
Descargar para leer sin conexión
О докладчике

Дмитрий Голушко
 Java разработчик, server-side
Важные параметры:
Скорость индексирования(в том числе realtime)

Способы взаимодействия(API, REST, etc.)
Работа с языками, стемминг, нечеткие запросы

Дополнительные типы полей в
документах(numeric, geo, source, etc.)

Платформа и язык
Встроенные механизмы ранжирования и сортировки
Какие есть варианты?
Elasticsearch(based on Lucene, Java)
Solr(based on Lucene, Java)

Sphinx search engine(C++)
Xapian(C++)
Почему мы выбрали Elasticsearch?
Отличная поддержка шардинга и репликации на лету
Шардинг и репликация.
       Создаем индекс.
Нода 1
 Street1   {
 Street2       “number_of_shards” : 2,
               “number_of_replicas” : 1
           }
Шардинг и репликация.
 Добавляем еще одну ноду.
Нода 1                  Нода 2
           Репликация
 Street1                 Street1
 Street2                 Street2
Шардинг и репликация.
           Добавляем еще 2 ноды.
Нода 1         Нода 2     Нода 3     Нода 4
 Street1                   Street1
                Street2               Street2
Почему мы выбрали Elasticsearch?

Отличная поддержка шардинга и репликации на лету
Написан на Java и базируется на известном движке
Lucene
Near-realtime индексация.
Поиск по «свежему» индексу
Поиск по индексу, с
одновременной индексацией
Поиск по большому индексу, с
одновременной индексацией
Почему мы выбрали Elasticsearch?
Отличная поддержка шардинга и репликации на лету
Написан на Java и базируется на известном движке
Lucene
Near-realtime индексация.
 Есть всё что нам нужно
Opensource, ASL v2
Имеется возможность для расширения
Возможность для расширения
River-плагины(поток данных из другого источника)
     CouchDB     RabbitMQ     MongoDB       …
Анализаторы
     Русская морфология     Hunspell(орфография)
Transport(расширения протоколов взаимодействия)
     Memcached     ZeroMQ     Servlet   …
Site Plugins(чаще всего UI для управления кластером)

Scripting Plugins(ЯП для скриптов)
ElasticSearch Paramedic
BigDesk
elasticsearch-head
Особенности Elasticsearch
Документно-ориентированный
Schema-free
JSON как основной способ работы с данными
JSON как основной способ работы с данными


GET “http://localhost:9200/index_name/streets/_search?q=Жукова”
{                                              Затраченное время
    "took" : 138,
    "timed_out" : false,
     "_shards" : { "total" : 2, "successful" : 2, "failed" : 0 },
        "hits" : {                                           Количество результатов
          "total" : 1,
          "max_score" : 1.9674579,
          "hits" : [{
            "_index" : “index_name",                                Исходный документ
            "_type" : "street",
            "_id" : "VLvO7h7bQUiCOlGwd2iJrA",
            "_score" : 1.9674579,
            "_source" : {"STREET_NAME":"Маршала Жукова", "CITY_NAME":"Омск", “STREET_ID” : 3}
           }]
       }
}
Особенности Elasticsearch
Документно-ориентированный
Schema-free
JSON как основной способ работы с данными
Распределенный поиск
Распределенный поиск

Node           Node   Node




Node           Node   Node




         Приложение
Распределенный поиск

Node           Node   Node




Node           Node   Node




         Приложение
Особенности Elasticsearch
Документно-ориентированный
Schema-free
JSON как основной способ работы с данными
Распределенный поиск
Скрипты для фильтрации(о них чуть позже)
Обновление настроек «на лету»
Обновление настроек «на лету»
POST “http://localhost:9200/index_name/_settings”

"{
     "index" : {
        "number_of_replicas" : 3
     }
}
Обновление настроек на лету

Нода 1     Нода 2     Нода 3     Нода 4
 Street1    Street1    Street1    Street1
 Street2    Street2    Street2    Street2
Индексация

              Анализатор

                                                    Token Filter
Tokenizer
                                     Token Filter

                      Token Filter


       Token Filter
Token Filters
Стеммеры(Стеммер Портера)
    важно             важн
    важного           важн
    важное            важн
    важной            важн
    важном            важн
    важному           важн

Фонетические(Soundex, Metaphone, etc.)
Ngramm
Soundex
• Первая буква сохраняется
• В остальной части слова:
    • Буквы, обозначающие, как правило,
    гласные звуки: a, e, h, i, o, u, w и y — отбрасываются
    • Оставшиеся буквы (согласные) заменяются на цифры от 1 до 6,
    причём похожим по звучанию буквам соответствуют одинаковые цифры:
         • 1: b, f, p, v
         • 2: c, g, j, k, q, s, x, z
         • 3: d, t
         • 4: l
         • 5: m, n
         • 6: r
    • Любая последовательность одинаковых цифр сокращается до одной такой цифры.
• Итоговая строка обрезается до первых четырёх символов.
Если длина строки меньше требуемой, недостающие символы заменяются знаком 0.
Примеры:
аmmonium → ammnm → a5555 → a5 → a500
implementation → implmnttn → i51455335 → i514535 → i514
Ngramm
Запросы
«Обычные» запросы
Term MatchNot match Prefix Bool Wildcard Range
Географические запросы
Boosting запросы
Span запросы
Нечеткие запросы
Fuzzy запросы(нечеткие)
Расстояние Левенштейна - минимальное количество операций
      вставки одного символа, удаления одного символа и замены
      одного символа на другой, необходимых для превращения
      одной строки в другую.


       Жукава
                                 1                Жукова

     Лизной (проезд)
                                   2          Лесной (проезд)

       Бухольца
                                  1               Бухгольца
Это важно!
В большинстве случаев вы должны использовать для поиска
    тот же алгоритм анализа, что и при индексировании!


       Fuzzy Query              Soundex
        «жукава»                «a500»


      Fuzzy Query                  3gramm
       «жукава»                «жук ука кав ава»
Фильтрация
Обычные фильтры
Term Prefix Range MissingExists Query

Геофильтры
Script фильтр
Геофильтры
    Geo BBox   Geo distance   Geo distance range   Geo polygon   Geo shape



{                                {
    “address" : {                    "location" : {
        "location" : {                  "type" : "envelope",
            "lat" : 41.12,              "coordinates" : [[-45.0, 45.0],
            "lon" : -71.34                               [45.0, -45.0]]
         }                           }
      }                          }
}
Геофильтры
Geo BBox   Geo distance   Geo distance range   Geo polygon   Geo shape



 "filter" : {
       "geo_bounding_box" : {
         "pin.location" : {
             "top_left" : {"lat" : 40.73, "lon" : -74.1 },
             "bottom_right" : {"lat" : 40.717, "lon" : -73.99}
         }
       }
    }
Геофильтры
Geo BBox   Geo distance   Geo distance range   Geo polygon   Geo shape
Геофильтры
Geo BBox   Geo distance   Geo distance range   Geo polygon   Geo shape



            "filter" : {
                    "geo_distance" : {
                        "distance" : "2km",
                        "pin.location" : {
                          "lat" : 40,
                          "lon" : -70
                        }
                    }
                  }
Геофильтры
Geo BBox   Geo distance   Geo distance range   Geo polygon   Geo shape
Геофильтры
Geo BBox    Geo distance   Geo distance range   Geo polygon   Geo shape

           "filter": {
                "geo_shape": {
                  "location": {
                     "indexed_shape": {"id": "Украина",
                         "type": "countries",
                         "index": "shapes",
                         "shape_field_name": "shape"
                      },
                     "relation": "within"
                   }
                }
           }
Скрипт-фильтр
"filtered" : {
   "query" : {
      ...
   },
   "filter" : {
      "script" : {
          "script" : "doc['num1'].value > 1"
      }
   }
}
Скрипт-фильтр. Доступные языки

           Java
        JavaScript
          Groovy
          Python
Advanced features
Подсветка(Highlighting)
Именованные фильтры(Named Filters)
Attachment indexing(с помощью Apache Tika)
Microsoft Office, Open Document Formats, ePub, PDF, etc.

Time-to-live fields
Percolation
Facets
Percolation

  Индексируются запросы, а не документы!

      Тем не менее это обычный индекс
  Запросы распространяются на все реплики

Поддерживают все обычные запросы и фильтры
Percolation
POST “http://localhost:9200/_percolator/messages/kgb”

        {
            "query" : {
               "terms" : {
                "message" : ["путин","навальный",
                   "террорист","бомба",
                   "наркотики","взятка"]
                }
             }
        }
Здарова! Зацени чо творится
"doc" : {                     «Одесский террорист, "метивший
    "message" : "..."         в Путина",
                              заявил о милицейских пытках
  }                           наркотиками и пакетами».




  GET “http://localhost:9200/messages/type/_percolate”




         {"ok":true, "matches":["kgb"]}
Facets
 Агрегированная информация по запросу
        Статистическая информация
    Сумма, минимальноемаксимальное значение, среднее и т.д.


Гистограммы(включая гистрограмму по дате)
              Географический facet
Географический facet
 {
     "facets" : {
       "geo1" : {
         "geo_distance" : {
            "pin.location" : {"lat" : 40, "lon" : -70 },
            "ranges" : [
               { "to" : 10 },
               { "from" : 10, "to" : 20 },
               { "from" : 20, "to" : 100 },
               { "from" : 100 }
            ]
         }
       }
     }
 }
А теперь небольшой real-world пример!
Развлечения!
{
    "query" : {
            "match_all" : {}
     },
    "facets" : {
      "facet_search" : {
         "terms" : {
           "quick_address_type" : ["restaurant",
                           "cafe",
                           "sauna",
                           "pool",
                           "bowling","bar"]
         }
       }
    }
}
"facets" : {
  "tags" : {
    "_type" : "terms",
    "missing" : 0,
    "total": 30,
    "other": 0,
    "terms" : [ { "term" : "restaurant", "count" : 7 },
               {"term" : "cafe", "count" : 5 },
               {"term" : "sauna","count" : 6},
               {"term" : "pool","count" : 3},
               {"term" : "bowling","count" : 2},
               {"term" : "bar","count" : 7 } ]
  }
}
Рестораны(7)
Кафе(5)
Сауны(6)
Бильярды(3)
Боулинги(2)
Бары(7)
{
     "query" : {
          "term" : {"quick_address_type" : "restaurant"}
      },
      "sort" : [
      {
           "_geo_distance" : {
               "pin.location" : [-73.13, 55.01],
               "order" : "asc",
               "unit" : "km"
           }
        },
        {
            "rating" : {
                 "user_rating" : "desc"
             }
        }
    ]
}
«Беляшкино»
 1км.

«Пампуши»
 2км.

«Фуаграшная»
 0,5км.
КОНЕЦ!

Más contenido relacionado

La actualidad más candente

Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTarget
Oleg Tsarev
 
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine "Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
Vladimir Ivanov
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.42014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
Nikolay Samokhvalov
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
phpdevby
 
Егор Львовский — «Кеширование на клиенте и сервере»
Егор Львовский — «Кеширование на клиенте и сервере»Егор Львовский — «Кеширование на клиенте и сервере»
Егор Львовский — «Кеширование на клиенте и сервере»
Yandex
 
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
Ontico
 
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Oleg Tsarev
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Ontico
 

La actualidad más candente (20)

Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTarget
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.Ru
 
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine "Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
"Optimizing Memory Footprint in Java" @ JEEConf 2013, Kiev, Ukraine
 
MongoDB basics in Russian
MongoDB basics in RussianMongoDB basics in Russian
MongoDB basics in Russian
 
Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"
 
20131112федорроманенко
20131112федорроманенко20131112федорроманенко
20131112федорроманенко
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.42014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
 
2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search2014.10.15 блиц-доклад PostgreSQL kNN search
2014.10.15 блиц-доклад PostgreSQL kNN search
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
20131105 романенко
20131105 романенко20131105 романенко
20131105 романенко
 
Егор Львовский — «Кеширование на клиенте и сервере»
Егор Львовский — «Кеширование на клиенте и сервере»Егор Львовский — «Кеширование на клиенте и сервере»
Егор Львовский — «Кеширование на клиенте и сервере»
 
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
Rspamd — высокопроизводительная система фильтрации спама / Стахов Всеволод (U...
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядов
 
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...NoSQL внутри SQL: приземленные вопросы практического применения /  Дмитрий До...
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...
 
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Создание электронной библиотеки научных трудов на платформе Dspace
Создание электронной библиотеки научных трудов на платформе DspaceСоздание электронной библиотеки научных трудов на платформе Dspace
Создание электронной библиотеки научных трудов на платформе Dspace
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
 
Будни тестирования Cassandr-ы
Будни тестирования Cassandr-ыБудни тестирования Cassandr-ы
Будни тестирования Cassandr-ы
 
Statutes and codes of HTTP
Statutes and codes of HTTPStatutes and codes of HTTP
Statutes and codes of HTTP
 

Destacado

Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
Vsevolod Polyakov
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico
 
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
it-people
 

Destacado (20)

Использование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайтуИспользование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайту
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе Elasticsearch
 
An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
 
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup MinskElacticSearch в связке с MODX Revo - MODX Meetup Minsk
ElacticSearch в связке с MODX Revo - MODX Meetup Minsk
 
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
Nekki: Shadow Fight 2: architecture of the analytics system handling billion ...
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
 
Путь мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в GrammarlyПуть мониторинга, DevOps club в Grammarly
Путь мониторинга, DevOps club в Grammarly
 
ElasticSearch at berlinbuzzwords 2010
ElasticSearch at berlinbuzzwords 2010ElasticSearch at berlinbuzzwords 2010
ElasticSearch at berlinbuzzwords 2010
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
Elastic search overview
Elastic search overviewElastic search overview
Elastic search overview
 
Media vigilia caleb
Media vigilia calebMedia vigilia caleb
Media vigilia caleb
 
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutes
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
DUMP-2012 - Только хардкор! - "Архитектура и запуск облачного сервиса в Amazo...
 
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and React
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and ReactSend Balls Into Orbit with Python3, AsyncIO, WebSockets and React
Send Balls Into Orbit with Python3, AsyncIO, WebSockets and React
 
Прямая выгода BigData для бизнеса
Прямая выгода BigData для бизнесаПрямая выгода BigData для бизнеса
Прямая выгода BigData для бизнеса
 
Behind the Scenes at Coolblue - Feb 2017
Behind the Scenes at Coolblue - Feb 2017Behind the Scenes at Coolblue - Feb 2017
Behind the Scenes at Coolblue - Feb 2017
 

Similar a 2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch

Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Ontico
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридонов
kuchinskaya
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 final
yaevents
 
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
it-people
 
Sphinx. настройка, эксплуатация
Sphinx. настройка, эксплуатацияSphinx. настройка, эксплуатация
Sphinx. настройка, эксплуатация
andreyborue
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
Anton Konushin
 
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Ontico
 
Производительный специализированный поиск: архитектура, область применимости ...
Производительный специализированный поиск: архитектура, область применимости ...Производительный специализированный поиск: архитектура, область применимости ...
Производительный специализированный поиск: архитектура, область применимости ...
Ontico
 

Similar a 2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch (20)

Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
Андрей Субботин "Локализация приложений для iOS: как не прострелить себе ногу"
 
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
Хранение json-документов в Tarantool / Андрей Дроздов (Mail.ru Group)
 
CSS глазами машин
CSS глазами машинCSS глазами машин
CSS глазами машин
 
сергей спиридонов
сергей спиридоновсергей спиридонов
сергей спиридонов
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 final
 
Виктор Грищенко
Виктор ГрищенкоВиктор Грищенко
Виктор Грищенко
 
Dsl for c++
Dsl for c++Dsl for c++
Dsl for c++
 
Компилируемые в реальном времени DSL для С++
Компилируемые в реальном времени DSL для С++Компилируемые в реальном времени DSL для С++
Компилируемые в реальном времени DSL для С++
 
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
DUMP-2015: «Полнотекстовый поиск по почте Mail.Ru» Дмитрий Калугин-Балашов, M...
 
Тодуа. Сериализация и язык YAML
Тодуа. Сериализация и язык YAMLТодуа. Сериализация и язык YAML
Тодуа. Сериализация и язык YAML
 
Reform: путь к лучшему ORM
Reform: путь к лучшему ORMReform: путь к лучшему ORM
Reform: путь к лучшему ORM
 
Sphinx. настройка, эксплуатация
Sphinx. настройка, эксплуатацияSphinx. настройка, эксплуатация
Sphinx. настройка, эксплуатация
 
Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)Clojure: Lisp for the modern world (русская версия)
Clojure: Lisp for the modern world (русская версия)
 
Эффективные алгоритмы поиска подобных объектов для терабайтов данных / Евгени...
Эффективные алгоритмы поиска подобных объектов для терабайтов данных / Евгени...Эффективные алгоритмы поиска подобных объектов для терабайтов данных / Евгени...
Эффективные алгоритмы поиска подобных объектов для терабайтов данных / Евгени...
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?
 
CV2011 Lecture 10. Image retrieval
CV2011 Lecture 10.  Image retrievalCV2011 Lecture 10.  Image retrieval
CV2011 Lecture 10. Image retrieval
 
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
Олег Бартунов (ГАИШ МГУ), Александр Коротков (Интаро-Софт)
 
Производительный специализированный поиск: архитектура, область применимости ...
Производительный специализированный поиск: архитектура, область применимости ...Производительный специализированный поиск: архитектура, область применимости ...
Производительный специализированный поиск: архитектура, область применимости ...
 
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»
 

Más de Омские ИТ-субботники

2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
Омские ИТ-субботники
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
Омские ИТ-субботники
 

Más de Омские ИТ-субботники (20)

2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!
 
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
 
2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
 
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
 
2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность 2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
 
2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC
 
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
 

2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch