Эластичный поиск по скорости памяти

Я пытаюсь проверить, насколько быстрее было бы решение с памятью с помощью asticsearch.

Для этого я написал тест, в котором я генерирую ~10 миллионов записей и после этого выполняю текстовый поиск. Результат приходит через 3-20 мс, но нет никакой разницы (вообще), когда я делаю поиск в памяти и без этой настройки. Является ли это возможным? 10 миллионов записей слишком малы, чтобы увидеть разницу? Я даже не уверен на 100%, правильно ли я включил режим в памяти. Я загружаю настройки из файла json, в котором я размещаю некоторые настройки, которые я нашел в Интернете, что должно было улучшить общее решение, но кажется, что оно вообще не работает.

Настройки относительно индекса выглядят так:

"index": {
    "store": {
        "type":"memory"
    },
    "merge": {
        "policy": {
            "use_compound_file": false
        }
    },
    "translog": {
        "flush_threshold": 50000
    },
    "engine": {
        "robin": {
            "refresh_interval": 2
        }
    },
    "cache": {
        "field": {
            "max_size": 500000,
            "expire": "30m"
        }
    }
},
"indices": {
    "memory": {
        "index_buffer_size": 256
    }
},

1 ответ

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

Но вы должны указать настройки хранилища при создании индекса (убедитесь, что индекс не существует ранее)

Попробуй это,

curl -XPUT "http://localhost:9200/my_index/" -d'
{
    "settings": {
        "index.store.type": "memory"
    }
}'

Это создаст индекс, который будет хранить индекс в основной памяти, используя RamIndexStore Lucene.

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