Question

I have following a dataimport handler:

<entity name="Categories" query="Select * From Categories">

  <field column="Name" name="categoryNgram"/>


    <entity name="CategorySynonyms" query="Select Synonym From CategorySynonyms Where CID='${Categories.Id}'">  

     <field column="Synonym" name="synonym"/>   

    </entity>

</entity>

The database tables have following values:

Categories

Id Name

1 Category1

CategorySynonyms

CID

1 CategorySynonym1 1 CategorySynonym2

In the result is says Total Rows Fetched: 3

But when i select all from index : i only receive one row in the result:

Category1 SynonymCategory1

Is there something wrong with the syntax that makes it create only one document when is should create two?

Était-ce utile?

La solution

It's expected as the total number of rows fetched from database is 3 (1 from table Categories and 2 from CategorySynonyms).

The total number of document in solr is 1, as expected too:

Name:Category1,
Synonym: CategorySynonym1,CategorySynonym2

Perhaps you can try

<entity name="Categories" query="Select CID,Name,Synonym From Categories join CategorySynonyms on Id=CID">
  <field column="Name" name="categoryNgram"/>
  <field column="Synonym" name="synonym"/>   
</entity>

Note: you may have to verify the SQL query to make sure it returns an Id field, and two rows as you would expected.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top