Как хранить Java-объекты на Solr - PullRequest
0 голосов
/ 13 января 2012

Я хочу хранить объекты Java как часть документа Solr.Их не нужно анализировать или обыскивать, они возвращаются только как часть документа.Я могу преобразовать их в json или XML и сохранить текст, но я предпочитаю что-то более эффективное.Если бы я мог использовать сериализацию Java, а затем добавить двоичный двоичный объект в документ, это было бы идеально.Мне известно о возможности преобразования двоичного двоичного объекта с помощью base64, но мне было интересно, есть ли более эффективный способ.

Ответы [ 3 ]

2 голосов
/ 13 января 2012

Поскольку вы можете создать идентификатор в Solr для передачи с любым документом, вы можете сохранить этот объект другим способом (например, для базы данных) и запросить его, когда получите идентификатор из solr.

Например, мы храним веб-страницы в Solr. Когда мы его индексируем, мы создаем идентификатор, который совпадает с идентификатором объекта WebPage, созданного ORM в базе данных

Когда поиск выполняется, мы возвращаем id и загружаем объект java из базы данных

Нет необходимости хранить его в solr (который был создан для хранения и индексирования документов)

0 голосов
/ 14 января 2012

Я не разделяю мнения первых двух ответов.

В некоторых случаях дополнительный вызов базы данных может быть совершенно ненужным, Solr также может выступать в качестве базы данных NoSQL.

Этоможно даже использовать сжатие для некоторых полей, что влияет на стоимость процессора, но экономит некоторую кэш-память для некоторых видов двоичных данных.

Взгляните на BinaryField иотложенные объявления полей загрузки в вашем schema.xml.

0 голосов
/ 14 января 2012

Я согласен, что вы не должны использовать Solr в качестве базы данных, особенно для двоичных данных.

Я предлагаю вам использовать одну из баз данных NoSQL (например, Neo4j, MongoDB, CouchDB, Riak, ...), поскольку большинство из них поддерживает json / bson и может отлично работать с Solr, который на самом деле также является NoSQL, тип документа , специализированное для поиска хранилище данных.

Вы можете, например, создать свой собственный обработчик запросов Solr, который будет использовать ID документа (первичный ключ) возвращенных документов для запроса хранилища данных NoSQL и составления поискового ответа. Кроме того, вы можете запросить NoSQL DB из вашего клиентского приложения напрямую после получения ответа Solr.

...