# Benchmark: Manticore 3 vs Sphinx 3 - now even faster

Недавно [мы выпустили Manticore 3.0.0](https://manticoresearch.com/blog/manticore-search-3-0-0-is-now-available/) с множеством улучшений, включая новые оптимизации, повышающие производительность. В этой статье мы хотим сравнить производительность новой версии с производительностью Sphinx 3.1.1.

### TL;DR

Manticore показывает:
- примерно **в 2 раза более высокую производительность поиска в некоторых случаях, особенно при более длинных запросах**
- и ниже, но **все равно лучшую производительность во всех остальных тестах**
- за исключением времени индексации, где Sphinx быстрее на 2%

### Test environment

Как [ранее, когда мы сравнивали Manticore 2.7 и Sphinx 3](https://manticoresearch.com/blog/manticore-2-7-5-vs-sphinx-3-1-1/), мы проведём бенчмарк на наборе данных из 11,6 млн пользовательских комментариев Hacker News.

Бенчмарк был проведён при следующих условиях:
- [Набор отобранных комментариев Hacker News](https://zenodo.org/record/45901/export/xd#.XEqiuc8zaU0) 2016 года в формате CSV
- ОС: Ubuntu 18.04.1 LTS (Bionic Beaver), ядро: 4.15.0-47-generic
- CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, 8 ядер
- 32 ГБ ОЗУ
- HDD
- Docker версии 18.09.2
- Базовый образ для индексации и searchd — Ubuntu:bionic
- Manticore Search был собран в Docker, бинарники Sphinx были загружены с сайта, так как нет открытого исходного кода для сборки
- [stress-tester](http://github.com/Ivinco/stress-tester) для бенчмаркинга

Конфигурация идентична для Manticore и Sphinx:

```ini
source full
{
  type = csvpipe
  csvpipe_command = cat /root/hacker_news_comments.prepared.csv|grep -v line_number
  csvpipe_attr_uint = story_id
  csvpipe_attr_timestamp = story_time
  csvpipe_field = story_text
  csvpipe_field = story_author
  csvpipe_attr_uint = comment_id
  csvpipe_field = comment_text
  csvpipe_field = comment_author
  csvpipe_attr_uint = comment_ranking
  csvpipe_attr_uint = author_comment_count
  csvpipe_attr_uint = story_comment_count
}

index full
{
  path = /root/idx_full
  source = full
  html_strip = 1
  mlock = 1
}

searchd
{
  listen = 9306:mysql41
  query_log = /root/query.log
  log = /root/searchd.log
  pid_file = /root/searchd.pid
  binlog_path =
  qcache_max_bytes = 0
}
```

### Indexation

Индексация заняла **1263 секунды для Manticore** и **1237 секунды для Sphinx**:

Manticore:

```bash
indexing index 'full'...
collected 11654429 docs, 6198.6 MB
creating lookup: 11654.4 Kdocs, 100.0% done
creating histograms: 11654.4 Kdocs, 100.0% done
sorted 1115.7 Mhits, 100.0% done
total 11654429 docs, 6198580642 bytes
total <b>1263.497 sec</b>, 4905890 bytes/sec, 9223.94 docs/sec
total 22924 reads, 1.484 sec, 238.4 kb/call avg, 0.0 msec/call avg
total 11687 writes, 11.773 sec, 855.1 kb/call avg, 1.0 msec/call avg
```

Sphinx:

```bash
indexing index 'full'...
collected 11654429 docs, 6198.6 MB
sorted 1115.7 Mhits, 100.0% done
total 11654429 docs, 6.199 Gb
total <b>1236.9</b> sec, 5.011 Mb/sec, 9422 docs/sec
```

Таким образом, на этом наборе данных и схеме индекса **Manticore индексирует медленнее, чем Sphinx, примерно на 2 %**.  

## Performance tests

---


Обе инстанции были прогреты перед тестированием. Файлы индексов были следующими:

Manticore:

```bash
root@bench# ls -lah /var/lib/docker/volumes/64746c338de981014c7c1ea93d4c55f55e13de63ac9e49c2d31292bb239a82b6/_data
total 4.7G
drwx------ 2 root root 4.0K May 14 09:03 .
drwxr-xr-x 3 root root 4.0K May 14 09:01 ..
-rw-r--r-- 1 root root 362M May 13 17:22 idx_full.spa
-rw-r--r-- 1 root root 3.1G May 13 17:31 idx_full.spd
-rw-r--r-- 1 root root  90M May 13 17:31 idx_full.spe
-rw-r--r-- 1 root root  628 May 13 17:31 idx_full.sph
-rw-r--r-- 1 root root  29K May 13 17:22 idx_full.sphi
-rw-r--r-- 1 root root 6.5M May 13 17:31 idx_full.spi
-rw------- 1 root root    0 May 14 09:03 idx_full.spl
-rw-r--r-- 1 root root 1.4M May 13 17:22 idx_full.spm
-rw-r--r-- 1 root root 1.1G May 13 17:31 idx_full.spp
-rw-r--r-- 1 root root  59M May 13 17:22 idx_full.spt
```

Sphinx:

```bash
root@bench /var/lib/docker/volumes # ls -lah /var/lib/docker/volumes/bd28586b5102ff91d4c367f612e2f7b1fe0a066917c8e0b4636d203dd3ba5b0b/_data
total 4.6G
drwx------ 3 root root 4.0K May 14 09:04 .
drwxr-xr-x 3 root root 4.0K May 14 09:03 ..
-rw-r--r-- 1 root root 362M May 13 19:09 idx_full.spa
-rw-r--r-- 1 root root 3.1G May 13 19:17 idx_full.spd
-rw-r--r-- 1 root root  27M May 13 19:17 idx_full.spe
-rw-r--r-- 1 root root  648 May 13 19:17 idx_full.sph
-rw-r--r-- 1 root root 6.3M May 13 19:17 idx_full.spi
-rw-r--r-- 1 root root    8 May 13 19:09 idx_full.spj
-rw-r--r-- 1 root root 1.4M May 13 19:09 idx_full.spk
-rw------- 1 root root    0 May 14 09:04 idx_full.spl
-rw-r--r-- 1 root root 1.1G May 13 19:17 idx_full.spp
```


### Test 1 - time to process top 1000 terms from the collection

Для начала просто проведём простой тест — сколько времени занимает поиск документов, содержащих топ‑1000 терминов из коллекции:

```bash
for n in `head -1000 hn_top.txt|awk '{print $1}'`; do
mysql -P9306 -hhn_$engine -e "select * from full where match('@(comment_text,story_text,comment_author,story_author) $n') limit 10 option max_matches=1000" > /dev/null
done

```
Результаты: 77,61 секунды для Sphinx и 71,46 секунды для Manticore.

![](./benchmark_manticore3_vs_sphinx3/at1-2899952845-1558009631666.png)

**Таким образом, в этом тесте Manticore Search быстрее, чем Sphinx Search, на 8,59 %**.  

### Test 2 - top 1000 frequent terms from the collection broken down by groups (top 1-50, top 50-100 etc.)

Теперь посмотрим, чем отличаются Sphinx и Manticore при обработке терминов из подгрупп топ‑1000 часто встречающихся терминов.

Чтобы лучше понять запросы, ниже приведены несколько случайных примеров запросов для каждой из групп:

<table border="1" cellpadding="0" cellspacing="0" dir="ltr"><colgroup> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col></colgroup><tbody><tr><td data-sheets-value="{"><b>1-50</b></td><td data-sheets-value="{"><b>50-100</b></td><td data-sheets-value="{"><b>100-150</b></td><td data-sheets-value="{"><b>150-200</b></td><td data-sheets-value="{"><b>200-250</b></td><td data-sheets-value="{"><b>250-300</b></td></tr><tr><td data-sheets-value="{">о</td><td data-sheets-value="{">получить</td><td data-sheets-value="{">вещь</td><td data-sheets-value="{">использовано</td><td data-sheets-value="{">разный</td><td data-sheets-value="{">высокий</td></tr><tr><td data-sheets-value="{">мой</td><td data-sheets-value="{">работа</td><td data-sheets-value="{">я</td><td data-sheets-value="{">выключено</td><td data-sheets-value="{">система</td><td data-sheets-value="{">строить</td></tr><tr><td data-sheets-value="{">больше</td><td data-sheets-value="{">вещи</td><td data-sheets-value="{">кажется</td><td data-sheets-value="{">уверен</td><td data-sheets-value="{">не</td><td data-sheets-value="{">следующий</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>300-350</b></td><td data-sheets-value="{"><b>350-400</b></td><td data-sheets-value="{"><b>400-450</b></td><td data-sheets-value="{"><b>450-500</b></td><td data-sheets-value="{"><b>500-550</b></td><td data-sheets-value="{"><b>550-600</b></td></tr><tr><td data-sheets-value="{">дни</td><td data-sheets-value="{">ценность</td><td data-sheets-value="{">20</td><td data-sheets-value="{">хотел</td><td data-sheets-value="{">цена</td><td data-sheets-value="{">сам</td></tr><tr><td data-sheets-value="{">писать</td><td data-sheets-value="{">сервер</td><td data-sheets-value="{">забота</td><td data-sheets-value="{">сайты</td><td data-sheets-value="{">g</td><td data-sheets-value="{">файл</td></tr><tr><td data-sheets-value="{">ничего</td><td data-sheets-value="{">телефон</td><td data-sheets-value="{">история</td><td data-sheets-value="{">недавно</td><td data-sheets-value="{">модель</td><td data-sheets-value="{">магазин</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>600-650</b></td><td data-sheets-value="{"><b>650-700</b></td><td data-sheets-value="{"><b>700-750</b></td><td data-sheets-value="{"><b>750-800</b></td><td data-sheets-value="{"><b>800-850</b></td><td data-sheets-value="{"><b>850-900</b></td></tr><tr><td data-sheets-value="{">наём</td><td data-sheets-value="{">умный</td><td data-sheets-value="{">приветствие</td><td data-sheets-value="{">выбор</td><td data-sheets-value="{">взятый</td><td data-sheets-value="{">тема</td></tr><tr><td data-sheets-value="{">клиент</td><td data-sheets-value="{">желание</td><td data-sheets-value="{">хочет</td><td data-sheets-value="{">pg</td><td data-sheets-value="{">детали</td><td data-sheets-value="{">ядро</td></tr><tr><td data-sheets-value="{">айфон</td><td data-sheets-value="{">причины</td><td data-sheets-value="{">окружение</td><td data-sheets-value="{">в целом</td><td data-sheets-value="{">css</td><td data-sheets-value="{">интересоваться</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>900-950</b></td><td data-sheets-value="{"><b>950-1000</b></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">полный</td><td data-sheets-value="{">ключевые слова</td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">ресурсы</td><td data-sheets-value="{">поздно</td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">мысли</td><td data-sheets-value="{">ipad</td><td></td><td></td><td></td><td></td></tr></tbody></table>

![](./benchmark_manticore3_vs_sphinx3/95p-latency-of-top-1000-frequent-terms-from-Hacker-News-collection-by-term-groups-top-1-50-top-50-100-etc.-ms.png)
![](./benchmark_manticore3_vs_sphinx3/Throughput-of-top-1000-frequent-terms-from-Hacker-News-collection-by-term-groups-top-1-50-top-50-100-etc..png)

**Manticore быстрее, чем Sphinx, на 6,8% по задержке 95p и на 12.2% по пропускной способности.**  

### Тест 3 - 1000 самых частотных терминов из коллекции, разбитых по группам + 1 термин из группы 1-100

Посмотрим, как это работает, когда у вас есть один очень частый

<table border="1" cellpadding="0" cellspacing="0" dir="ltr"><colgroup> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col></colgroup><tbody><tr><td data-sheets-value="{"><b>1-50</b></td><td data-sheets-value="{"><b>50-100</b></td><td data-sheets-value="{"><b>100-150</b></td><td data-sheets-value="{"><b>150-200</b></td><td data-sheets-value="{"><b>200-250</b></td><td data-sheets-value="{"><b>250-300</b></td></tr><tr><td data-sheets-value="{">больше быть</td><td data-sheets-value="{">то было</td><td data-sheets-value="{">путь быть</td><td data-sheets-value="{">один выключен</td><td data-sheets-value="{">просто запуск</td><td data-sheets-value="{">имел оплату</td></tr><tr><td data-sheets-value="{">их как</td><td data-sheets-value="{">мог бы другой</td><td data-sheets-value="{">может d</td><td data-sheets-value="{">думать свой</td><td data-sheets-value="{">действительно иначе</td><td data-sheets-value="{">если дизайн</td></tr><tr><td data-sheets-value="{">о было</td><td data-sheets-value="{">сделать тогда</td><td data-sheets-value="{">было и т.д.</td><td data-sheets-value="{">из приложения</td><td data-sheets-value="{">к мало</td><td data-sheets-value="{">на еще</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>300-350</b></td><td data-sheets-value="{"><b>350-400</b></td><td data-sheets-value="{"><b>400-450</b></td><td data-sheets-value="{"><b>450-500</b></td><td data-sheets-value="{"><b>500-550</b></td><td data-sheets-value="{"><b>550-600</b></td></tr><tr><td data-sheets-value="{">просто либо</td><td data-sheets-value="{">интернет</td><td data-sheets-value="{">кто сеть</td><td data-sheets-value="{">ваше местоположение</td><td data-sheets-value="{">будет программа</td><td data-sheets-value="{">t в основном</td></tr><tr><td data-sheets-value="{">не далеко</td><td data-sheets-value="{">по социальному</td><td data-sheets-value="{">t прошлое</td><td data-sheets-value="{">сайты</td><td data-sheets-value="{">несколько</td><td data-sheets-value="{">имеет со</td></tr><tr><td data-sheets-value="{">1 написать</td><td data-sheets-value="{">имеет средства</td><td data-sheets-value="{">большинство парней</td><td data-sheets-value="{">не важно</td><td data-sheets-value="{">имеет пространство</td><td data-sheets-value="{">если в основном</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>600-650</b></td><td data-sheets-value="{"><b>650-700</b></td><td data-sheets-value="{"><b>700-750</b></td><td data-sheets-value="{"><b>750-800</b></td><td data-sheets-value="{"><b>800-850</b></td><td data-sheets-value="{"><b>850-900</b></td></tr><tr><td data-sheets-value="{">путь программистов</td><td data-sheets-value="{" title="">см. заголовок</td><td data-sheets-value="{">потому что слова</td><td data-sheets-value="{">думать mac</td><td data-sheets-value="{">самый дорогой</td><td data-sheets-value="{">время изменилось</td></tr><tr><td data-sheets-value="{">было трудно</td><td data-sheets-value="{">я успешный</td><td data-sheets-value="{">ком клиент</td><td data-sheets-value="{">слышно</td><td data-sheets-value="{">на чрезвычайно</td><td data-sheets-value="{">было еда</td></tr><tr><td data-sheets-value="{">их недели</td><td data-sheets-value="{">чем yc</td><td data-sheets-value="{">потому что хорошо</td><td data-sheets-value="{">также настольный</td><td data-sheets-value="{">для понимания</td><td data-sheets-value="{">большой трафик</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>900-950</b></td><td data-sheets-value="{"><b>950-1000</b></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">если вечеринка</td><td data-sheets-value="{">действительно справедливо</td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">когда серьезно</td><td data-sheets-value="{">здесь серверы</td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">думать скорость</td><td data-sheets-value="{">было потеряно</td><td></td><td></td><td></td><td></td></tr></tbody></table>

![](./benchmark_manticore3_vs_sphinx3/95-latency-of-top-1000-frequent-terms-from-Hacker-News-colleciton-by-groups-1-term-from-group-1-100-ms.png)
![](./benchmark_manticore3_vs_sphinx3/Throughput-of-top-1000-frequent-terms-from-Hacker-News-colleciton-by-groups-1-term-from-group-1-100.png)


**Вау, Manticore быстрее Sphinx на 106% по пропускной способности и на 91,8% в среднем по задержке 95‑го процента.**  

### Тест 4 — 1000 самых частотных терминов из коллекции, разбитых по группам + 1 термин из группы 1‑100, оба термина заключены в кавычки, чтобы образовать фразу

<table border="1" cellpadding="0" cellspacing="0" dir="ltr"><colgroup> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col> <col width="100"></col></colgroup><tbody><tr><td data-sheets-value="{"><b>1-50</b></td><td data-sheets-value="{"><b>50-100</b></td><td data-sheets-value="{"><b>100-150</b></td><td data-sheets-value="{"><b>150-200</b></td><td data-sheets-value="{"><b>200-250</b></td><td data-sheets-value="{"><b>250-300</b></td></tr><tr><td data-sheets-value="{">"они все"</td><td data-sheets-value="{">"думать также"</td><td data-sheets-value="{">"тот код"</td><td data-sheets-value="{">"мы приложение"</td><td data-sheets-value="{">"от дать"</td><td data-sheets-value="{">"по пользователю"</td></tr><tr><td data-sheets-value="{">"http вы"</td><td data-sheets-value="{">"нравится был"</td><td data-sheets-value="{">"это наш"</td><td data-sheets-value="{">"как статья"</td><td data-sheets-value="{">"использовать сделано"</td><td data-sheets-value="{">"действительно минимум"</td></tr><tr><td data-sheets-value="{">"кем-то"</td><td data-sheets-value="{">"использовать работу"</td><td data-sheets-value="{">"делать хорошо"</td><td data-sheets-value="{">"я приложение"</td><td data-sheets-value="{">"мог бы другой"</td><td data-sheets-value="{">"если понять"</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>300-350</b></td><td data-sheets-value="{"><b>350-400</b></td><td data-sheets-value="{"><b>400-450</b></td><td data-sheets-value="{"><b>450-500</b></td><td data-sheets-value="{"><b>500-550</b></td><td data-sheets-value="{"><b>550-600</b></td></tr><tr><td data-sheets-value="{">"другой разработчик"</td><td data-sheets-value="{">"путем построения"</td><td data-sheets-value="{">"хотеть создать"</td><td data-sheets-value="{">"там фронт"</td><td data-sheets-value="{">"любое правительство"</td><td data-sheets-value="{">"их учитывать"</td></tr><tr><td data-sheets-value="{">"имеет идеи"</td><td data-sheets-value="{">"я python"</td><td data-sheets-value="{">"кто дал"</td><td data-sheets-value="{">"полностью имеет"</td><td data-sheets-value="{">"имеет цену"</td><td data-sheets-value="{">"начинаем"</td></tr><tr><td data-sheets-value="{">"путь facebook"</td><td data-sheets-value="{">"быть редактировать"</td><td data-sheets-value="{">"вверх ссылка"</td><td data-sheets-value="{">"использовать местоположение"</td><td data-sheets-value="{">"действительно иметь дело"</td><td data-sheets-value="{">"сейчас рано"</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>600-650</b></td><td data-sheets-value="{"><b>650-700</b></td><td data-sheets-value="{"><b>700-750</b></td><td data-sheets-value="{"><b>750-800</b></td><td data-sheets-value="{"><b>800-850</b></td><td data-sheets-value="{"><b>850-900</b></td></tr><tr><td data-sheets-value="{">"были недели"</td><td data-sheets-value="{">"в инженерии"</td><td data-sheets-value="{">"имеет запрос"</td><td data-sheets-value="{">"s p"</td><td data-sheets-value="{">"кто css"</td><td data-sheets-value="{">"там плюс"</td></tr><tr><td data-sheets-value="{">"создать api"</td><td data-sheets-value="{">"мы ожидаем"</td><td data-sheets-value="{">"действительно желающий"</td><td data-sheets-value="{">"t шаг"</td><td data-sheets-value="{">"потому что сильный"</td><td data-sheets-value="{">"для трафика"</td></tr><tr><td data-sheets-value="{">"было примечание"</td><td data-sheets-value="{">"были бы сами"</td><td data-sheets-value="{">"http степень"</td><td data-sheets-value="{">"http рабочий стол"</td><td data-sheets-value="{">"не иначе"</td><td data-sheets-value="{">"много еды"</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{"><b>900-950</b></td><td data-sheets-value="{"><b>950-1000</b></td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">"s приносит"</td><td data-sheets-value="{">"очень требуется"</td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">"это выбирает"</td><td data-sheets-value="{">"все примеры"</td><td></td><td></td><td></td><td></td></tr><tr><td data-sheets-value="{">"теперь приносит"</td><td data-sheets-value="{">"быть аргументом"</td><td></td><td></td><td></td><td></td></tr></tbody></table>

![](./benchmark_manticore3_vs_sphinx3/95p-latency-of-top-1000-frequent-terms-from-Hacker-News-colleciton-by-groups-1-term-from-group-1-100-both-terms-enclosed-in-quotes-to-make-a-phrase-ms.png)
![](./benchmark_manticore3_vs_sphinx3/Throughput-of-top-1000-frequent-terms-from-Hacker-News-colleciton-by-groups-1-term-from-group-1-100-both-terms-enclosed-in-quotes-to-make-a-phrase.png)


**Здесь Manticore в среднем быстрее: на 11,8% по пропускной способности и на 21,2% по задержке 95p.**  

### Тест 5 - 2 термина из группы 600-750 при разных уровнях одновременности

Этот тест направлен на демонстрацию разницы в пропускной способности при разных уровнях одновременности запросов. Вот что мы получили:

![](./benchmark_manticore3_vs_sphinx3/95p-latency-of-2-terms-each-from-group-600-750-under-different-concurrencies-ms.png)
![](./benchmark_manticore3_vs_sphinx3/Throughput-of-2-terms-each-from-group-600-750-under-different-concurrencies.png)
**Manticore быстрее при всех уровнях одновременности в среднем на 31% и обеспечивает пропускную способность с задержкой 95p ниже на 28%.**  

### Тест 6 - 3-5 терминов из разных групп

Этот тест направлен на демонстрацию разницы в поиске с более длинными запросами (3-5 терминов):
- <span class="pl-s">3 термина из групп 100-200, 400-500, 800-900 соответственно</span>
- 4 термина из групп 100-200, 300-400, 500-600, 800-900 соответственно
- 5 терминов из групп 100-200, 300-400, 500-600, 800-900, 900-1000 соответственно

Примеры запросов:

<table border="1" cellpadding="0" cellspacing="0" dir="ltr"><colgroup> <col width="100"></col> <col width="100"></col> <col width="100"></col></colgroup><tbody><tr><td data-sheets-value="{">3 термина</td><td data-sheets-value="{">4 термина</td><td data-sheets-value="{">5 терминов</td></tr><tr><td data-sheets-value="{">работа сам выпуск</td><td data-sheets-value="{">используя благодарности второй 12</td><td data-sheets-value="{">переключить начато b 12 мест
</td></tr><tr><td data-sheets-value="{">каждый сайт отсутствует</td><td data-sheets-value="{">вокруг школьных моделей ссылки</td><td class="" data-sheets-value="{">переключить github класс ненавидеть недавний
</td></tr><tr><td data-sheets-value="{">его aren избегать</td><td data-sheets-value="{">через количество работ эффект</td><td data-sheets-value="{">переключить facebook офис абсолютно английский
</td></tr></tbody></table>

![](./benchmark_manticore3_vs_sphinx3/95p-latency-of-3-5-terms.png)
![](./benchmark_manticore3_vs_sphinx3/Throughput-of-3-5-terms.png)

**Пропускная способность Manticore выше на 77,6%, а задержка 95‑го процентиля ниже на 81,4%.**  

### ТЕСТ 7: 3 И термина из групп 300‑600 и 1 НЕ из 300‑400

В этом тесте мы добавляем термин NOT к запросу из 3‑х терминов:

![](./benchmark_manticore3_vs_sphinx3/95p-latency-of-3-AND-terms-from-groups-300-600-and-1-NOT-from-300-400.png)
![](./benchmark_manticore3_vs_sphinx3/Throughput-of-3-AND-terms-from-groups-300-600-and-1-NOT-from-300-400.png)

**Пропускная способность - выше на 66,6%, задержка 95‑го процентиля - ниже на 57%.**  

# Выводы
Sphinx показывает на несколько секунд лучшую производительность индексации при 21‑минутной индексации.
**Что касается производительности поиска, которая, как мы считаем, гораздо важнее, Manticore 3.0.0 демонстрирует значительно более высокую пропускную способность и более низкую задержку во всех тестах.** Весь тест полностью контейнеризован и [открыт в нашем github](https://github.com/manticoresoftware/benchmarks/tree/53aa3b1c7f905319e854c537baf8524c6b919404/hn_sphinx_manticore). Подробные результаты можно найти [здесь](https://docs.google.com/spreadsheets/d/1rYveMSw7P5Ll0OjSIhGOABf1WraIlFTkEs5NGGASFHI/edit?usp=sharing). Мы будем признательны, если вы запустите те же тесты на вашем оборудовании или добавите другие тесты в набор и сообщите нам результаты.

Если вы планируете мигрировать на Manticore 3, пожалуйста, прочитайте [эту статью](https://manticoresearch.com/blog/migrating-indexes-to-version-3/). Мы понимаем, что ваши индексы могут быть большими, и чтобы облегчить процесс миграции, существует новый инструмент [index_converter](https://docs.manticoresearch.com/latest/html/command_line_tools_reference/index_converter_command_reference.html#index-converter-command-reference), который может легко конвертировать ваши существующие индексы Sphinx 2 / Manticore 2 в новый формат индексов Manticore 3.

Если у вас возникнут какие‑либо проблемы, вопросы или комментарии, пожалуйста, свяжитесь с нами:
- в [twitter](https://twitter.com/manticoresearch)
- отправив письмо на <contact@manticoresearch.com>
- разместив сообщение на нашем [Форуме](https://forum.manticoresearch.com)
- пообщавшись с нами в нашем [Community Slack](http://slack.manticoresearch.com)
- жалуясь на то, насколько всё плохо, в нашем [трекер ошибок в GitHub](https://github.com/manticoresoftware/manticore)
