Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Solr - DIH definiuje i importuje pola wiele do wielu

Po obejrzeniu dokumentu i googlowania rozwiązałem problem.

Stoły

  • książka
  • autor
  • book_author_map (to jest środkowa tabela dla relacji wiele-do-wielu)

Plik konfiguracyjny DIH

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/test?characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull" user="root"
        password="123456" />
    <document>
        <entity name="book" pk="id"
            query="SELECT * FROM book where status = 0 limit 200000;"
            deltaImportQuery="SELECT * FROM book where status = 0 and id='${dih.delta.id}' limit 200000;"
            deltaQuery="select id from book where status = 0 and CONVERT_TZ(`update_date`, @@session.time_zone, '+00:00')  &gt; '${dih.last_index_time}'"
        >
            <entity name="author"
                query="SELECT au.cn_name as author_cn_name FROM author AS au JOIN book_author_map AS bam ON au.id = bam.author_id WHERE bam.book_id = ${book.id} limit 10;"
            >
                <field name="authors" column="author_cn_name" />
            </entity>
        </entity>
    </document>
</dataConfig>

Definicja pola

<field name="cn_name" type="textComplex" indexed="true" stored="true" />
<field name="en_name" type="textComplex" indexed="true" stored="true" />

<field name="status" type="int" indexed="true" stored="true" />

<field name="authors" type="textComplex" indexed="true" stored="true" multiValued="true" />

TODO

  • parentDeltaQuery Pobiera pk encji nadrzędnej, ale kiedy jest wywoływana i co należy zrobić? Czy to konieczne?
  • Czy deltaQuery i parentDeltaQuery konieczne w podjednostce?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego nie powinienem wstawiać zserializowanych tablic do pola mojej bazy danych?

  2. Jak dodać <br/> po każdym wyniku, ale nie ostatnim?

  3. Jak dodać pole wyboru do tabeli danych, które będzie używane do usunięcia wybranego wiersza?

  4. Czy przeniesienie danych z EBS do pamięci efemerycznych poprawi wydajność zapytań MySQL?

  5. Zmiana rozmiaru obrazu PHP