Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Solr - DIH mendefinisikan &mengimpor bidang banyak-ke-banyak

Setelah melihat doc &googling, saya telah menyelesaikan masalah dengan baik.

Tabel

  • buku
  • penulis
  • book_author_map (ini adalah tabel tengah untuk hubungan banyak-ke-banyak)

File konfigurasi 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>

Definisi bidang

<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 Itu mendapatkan pk dari entitas induk, tetapi ketika dipanggil, dan apa yang dilakukan? Apakah itu perlu?
  • Apakah deltaQuery dan parentDeltaQuery diperlukan dalam sub entitas?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA:Banyak ke banyak hubungan - JsonMappingException:Rekursi tak terbatas

  2. Bagaimana cara memilih dua kolom tambahan dari tabel lain berdasarkan nilai di tabel utama?

  3. Dapatkan nama database mysql yang terhubung (JDBC)

  4. acara terjadwal mysql berhenti bekerja segera setelah acara ke-2 dibuat dan dijalankan

  5. Gema bidang boolean sebagai ya/tidak atau nilai lainnya