Solr загружает информацию без обработчика импорта данных
-
12-12-2019 - |
Вопрос
У меня есть 700.000 названий улиц, 8111 названий муниципалитетов и 80333 почтовых индекса населенных пунктов.Я хотел бы проиндексировать всю эту информацию в solr.Пользователь хочет выполнить поиск этой информации с помощью формы автозаполнения ajax.Я доказал это с помощью небольшого количества данных и поведения формы автозаполнения ajax, все в порядке.
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
</fieldType>
Проблема возникает при загрузке всех данных в solr
- Как я должен загрузить информацию на сервер solr (я нахожусь в приложении grails, и мне нужно загрузить экземпляры, содержащие информацию, без обработчика ввода данных) Сегодня я потратил на это много часов, и, наконец, консоль grails вышла из строя:( --> должен ли я использовать скрипт grails вместо того, чтобы создавать службу и выполнять ее с помощью консоли grails??
- Или я должен использовать обработчик ввода данных, чтобы загрузить его быстрее??Могу ли я объединить строковые значения из разных столбцов разных таблиц с помощью обработчика ввода данных??
(Это нормально, иметь разные документы для каждого из них (700.000 + 8111 + 80.333 документы) ??)
спасибо, что уделили мне время
Решение
Я предполагаю, что ваши муниципалитеты, названия улиц и почтовые индексы должны быть автоматически заполнены отдельно.В этом случае вы бы использовали отдельный ядро solr для каждого из них.
Или я должен использовать обработчик ввода данных, чтобы загрузить его быстрее??
DIH будет довольно быстрым, и до тех пор, пока эта информация меняется не очень часто, было бы неплохо сделать это таким образом.
Могу ли я объединить строковые значения из разных столбцов разных таблиц с помощью обработчика ввода данных??
Да;в data-config.xml
вы даете конкретные SQL
запрос и может использовать встроенную конкатенацию базы данных (например ||
в oracle).
Другие советы
Серьезно, напишите скрипт оболочки и используйте Curl, чтобы отправить обновления на Solr.
Вы пытаетесь стрелять с настенной на стену с пушкой, установленной на корабле, плавающем в вашем бассейне. Вам не нужна пушка или корабль или бассейн. Просто стойте там с воздушным пистолетом и выложите обновления один за другим, пока не сделано.
Для скрипта Shell Shell в комплекте с образцом обновления Solr, загрузите двоичный файл Solr, либо Apache-Solr-3.5.0.tgz, либо Apache-solr-3.5.0.zip из зеркала рядом с вами. Найдите зеркало на http://lucene.apache.org/solr/downloads.html
Распаковать архив, перейдите в примерный каталог и следуйте этим инструкциям http://lucene.apache.org/solr/tutorial.html
Если вы находитесь в Unix, просто используйте Post.sh.
Кстати, проверьте версию Solr, которую вы установили на своем сервере. Если это не 3.50, то почему вы используете старую версию, когда у вас новее прямо здесь, прямо сейчас?