Я попробовал следующий SQL в теге сущности файла конфигурации импорта данных:
<entity name="Page" dataSource="a1" query="SELECT &apos;26484-&apos;&amp;`book`.id&amp;&apos;-&apos;&amp;`book`.page&amp;&apos;-&apos;&amp;`book`.part AS PageID, `book`.id AS pid, `book`.nass AS Content, `book`.part AS Part, `book`.page AS PageNum FROM `book` ORDER BY `book`.id, `book`.page">
Запрос Sql содержит символы, которые должны быть экранированы в xml, ' and &
. Тем не менее, я получаю следующую ошибку в журнале:
DocBuilder Exception while processing: Page document : SolrInputDocument(fields: []):org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT '26484-'&`book`.id&'-'&`book`.page&'-'&`book`.part AS PageID, `book`.id AS pid, `book`.nass AS Content, `book`.part AS Part, `book`.page AS PageNum FROM `book` ORDER BY `book`.id, `book`.page Processing Document # 1
а также
DataImporter Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT '26484-'&`book`.id&'-'&`book`.page&'-'&`book`.part AS PageID, `book`.id AS pid, `book`.nass AS Content, `book`.part AS Part, `book`.page AS PageNum FROM `book` ORDER BY `book`.id, `book`.page Processing Document # 1
Я использую ucanaccess jdbc-драйвер.
Когда я попытался удалить конкатенацию из SQL-запроса, удалив экранированные символы, я не получил эту ошибку, но получил предупреждение solrWriter о дублирующемся уникальном ключе. и я понимаю это предупреждение. Однако как я могу написать, используя запрос Sql, показанный выше?
'
прямо в запрос. - person cheffe   schedule 09.10.2014&
требуется для каждого экранированного символа. Поэтому вам нужно будет заменить&apos;
на&'
. - person cheffe   schedule 09.10.2014