Solr загружает весь индекс в память - PullRequest
5 голосов
/ 14 марта 2012

Я использую solr для данных, похожих на имя: возраст: пол: баланс: следующий баланс: проценты

У меня есть 30 миллионов записей на 4G на диске.Я ищу по возрасту: 23 года, что составляет всего 50 записей.У меня есть indexed = "true" в схеме xml.Кажется, Solr загружает весь индекс на диске в память (4G).Разве он не должен извлечь только 40 лишних записей в память?

Ответы [ 3 ]

5 голосов
/ 14 марта 2012

Может быть, это кеш документов. Вам необходимо указать его размер. Можете ли вы проверить следующее в solrconfig.xml?

<!-- documentCache caches Lucene Document objects (the stored fields for each document).
  -->
<documentCache
  class="solr.LRUCache"
  size="16384"
  initialSize="16384"/>
4 голосов
/ 14 марта 2012

Я думаю, это зависит от того, как вы настраиваете кеш (что он делает и не хранит в памяти). Загрузка всего индекса в память может значительно повысить производительность с точки зрения времени, необходимого для получения результатов, независимо от запроса.

Сведения о настройке кэша и сведения о факторах производительности:

1 голос
/ 17 марта 2012

Поля, которые хранятся, но не индексируются, сохраняются на диске, но не в оперативной памяти. Однако 100% записей действительно индексируются в ОЗУ, и эти индексы содержат все проиндексированные поля. Но для этого достаточно эффективны инвертированные индексы.

Однако, когда вы выполняете запросы, SOLR действительно извлекает весь набор сохраненных (но не проиндексированных) содержимого полей в RAM для записей, которые совпадают. Обычно это считается желательным поведением кэширования, поскольку это означает, что результаты поиска могут быть переданы раньше, что сокращает общее время обработки запроса. Как обычно с SOLR, вы можете настроить поведение кэширования различными способами, чтобы соответствовать бюджету ОЗУ и потребностям базы данных. Посмотрите на возможности в solrconfig.xml.

Обратите внимание, что это сложная область, и вам, вероятно, будет трудно полностью понять кеширование, если Google является вашим основным источником информации. Это область, где лучше учиться по одной из книг по SOLR.

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