2016-05-26 3 views
0

Можно выполнить запрос в следующую коллекцию SOLRНормализовать ответ через кратному присоединяется в одном запросе с Solr

{ 
    "id":1, 
    "book_name":"Solr book", 
    "category":[1,2,3], 
    "author":[1] 
}, 
{ 
    "id":1, 
    "book_name":"Rocky", 
    "category":[3], 
    "author":[2] 
}, 
{ 
    "category_id": 1, 
    "category_name":"Technology" 
}, 
{ 
    "category_id": 2, 
    "category_name":"Apache Lucene" 
}, 
{ 
    "category_id": 3, 
    "category_name":"Sport" 
}, 
{ 
    "author_id": "1", 
    "author_name" "Chuck Norris" 
}, 
{ 
    "author_id": "1", 
    "author_name" "John Rambo" 
} 

, который будет возвращать что-то вроде:

{ 
    "id": 1, 
    "book_name": "Solr book", 
    "categories": ["Technology", "Apache Lucene"], 
    "Authors": ["Chuck Norris"] 
} 

поиске по book_name И/ИЛИ category_name И/ИЛИ имя автора в типичном входе в Searchbox? или альтернативный ответ, и я верну что-то подобное?

В противном случае это предпочтительный обходной путь/наилучшая практика для его достижения?

... мы хотели бы выполнить один запрос через веб-приложение Frontend без, используя веб-приложение Backend для структурирования ответа, поскольку эти данные уже находятся в solr.

+0

У вас есть данные этого типа в среде разработки или в производственной среде ...? –

+0

это в среде разработки. Но я уже нашел решение здесь http://wiki.apache.org/solr/DataImportHandler#Full_Import_Example –

+0

Не могли бы вы поделиться тем, что именно было сделано или помогло вам решить эту проблему ...? –

ответ

0

Как я уже рассчитался сбор был неправ, я сделал это так:

<dataConfig> 
    <dataSource type="JdbcDataSource" 
      driver="com.mysql.jdbc.Driver" 
      url="jdbc:mysql://localhost:3306/circulo_lectores" 
      user="" 
      password="" /> 
    <document> 
     <entity name="book" query="SELECT * FROM book"> 

      <field column="id" name="id"/> 
      <field column="book" name="book" /> 

      <entity name="book_author" query="SELECT * FROM book_author WHERE book_id= ${book.id}">   
       <field column="author_id" name="author_id" /> 
       <entity name="author" query="select * FROM author WHERE id = ${book_author.author_id}"> 
        <field column="author_name" name="author_name" /> 
       </entity>     
      </entity> 

      <entity name="book_category" query="SELECT * FROM book_category WHERE book_id= ${book.id}">   
       <field column="category_id" name="category_id" /> 
       <entity name="category" query="select * FROM category WHERE id = ${book_category.category_id}"> 
        <field column="category_name" name="category_name" /> 
       </entity>     
      </entity>    

     </entity> 
    </document> 
</dataConfig> 

Это reference дал мне ключ. Надеюсь, это поможет кому-то еще

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