2015-08-17 2 views
0

Я только начал использовать Solr. В моей базе данных у меня есть коллекция папок, содержащих два типа сущностей, позволяет называть их бочками и обезьянами. Папки содержат бочки и бочки содержат обезьян. Пользователи должны иметь возможность искать бочки и обезьяны, но им разрешено видеть только определенные папки, и поиск не должен возвращать бочки или обезьяны в папки, которые им не разрешено видеть. У меня есть запрос фильтра, который делает это отлично для баррелей, но у меня возникли проблемы с получением обработчика импорта данных для импорта идентификаторов папки для обезьян. Мой файл данных конфигурации выглядит следующим образом:Ссылки на внешние ключи в Solr dataImportHandler

<dataConfig> 
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/myDB" user="myUser" password="pass"/> 
    <document name="item"> 
     <entity name="barrels" query="select * from barrels where is_deleted=0" transformer="TemplateTransformer" 
       deltaQuery="select barrel_id from barrels where last_modified > '${dataimporter.last_index_time}'"> 
      <field column="itemType" template="barrels" name="itemType"/> 
      <field column="barrel_id" name="id" pk="true" template="barrel-${barrels.barrel_id}"/> 
      <!--Other fields--> 

      <field column="folder_id" name="folder_id"/> 
     </entity> 

     <entity name="monkeys" query="select * from monkeys where is_deleted=0" transformer="TemplateTransformer" 
       deltaQuery="select monkey_id from monkeys where last_modified > '${dataimporter.last_index_time}'"> 
      <field column="itemType" template="monkeys" name="itemType"/> 
      <field column="monkey_id" name="id" pk="true" template="monkey-${monkeys.monkey_id}"/> 
      <field column="barrel_id" name="barrel_id"/> 
      <!--Other fields--> 

      <entity name="barrels" 
        query="select folder_id from barrels where barrel_id='${monkeys.barrel_id}'"> 
       <field name="folder_id" column="folder_id" /> 
      </entity> 
     </entity> 
    </document> 
</dataConfig> 

Когда я изменяю «$ {monkeys.barrel_id}» в запросе внешнего ключа 28, он работает, но когда я пытаюсь заставить его использовать правильно id, он ничего не импортирует.

Может ли кто-нибудь определить, что я делаю неправильно, или сказать мне хороший способ отладки такого рода вещей? Например. как я могу заставить его рассказать мне, какое значение оно имеет для $ $ {monkeys.barrel_id}? Все соответствующие поля определены в schema.xml. Поскольку у меня есть эта проблема, я убедился, что все документы имеют те же имена, что и таблицы, и попытались изменить различные биты запроса на верхний регистр, но все в нижнем регистре базы данных, и похоже, что это не помогает.

ответ

0

Задав вопрос, мне удалось в конце концов выяснить его. Вот что я узнал:

1) Получение запроса, чтобы рассказать вам, очень полезно, и это просто вопрос настройки уровня ведения журнала. Однако вы должны настроить его во всех соответствующих местах. Так что для моего Standalone.xml (в WildFly), в дополнение к буровому

<logger category="org.apache.solr"> 
    <level name="FINE"/> 
</logger> 

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

2) Одиночные кавычки не являются частью синтаксиса оценки выражения, они всего лишь кавычки. Поэтому вам не нужны они при работе с ints. Я думаю, что пример, который поставляется с solr, использует идентификаторы строк, а не int id, и поэтому у него есть кавычки?

3) Как только я избавился от котировок, изменение дела действительно имело значение. Для моей базы данных его предпочтительным случаем был Barrel_ID по какой-то причине. Я не пробовал много с капиталами с обоих концов, но не посередине, но вот что сработало. Поэтому я думаю, что мораль этой истории состоит в том, что стоит попробовать множество разных случаев, даже если они кажутся глупыми.

+0

https://abhijitbashetti.blogspot.com/b/post-preview?token=kKGGQk8BAAA.tsbzRwFnTyQES0DzsnH33w.bie5d42XDD_l1RyF-P3V9g&postId=2878583879845884909&type=POST –

+0

Благодаря Abhijit. Эта ссылка не работала для меня, но я вижу, вы много писали о Solr. – Juniper83

Смежные вопросы