lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Noble Paul നോബിള്‍ नोब्ळ् <noble.p...@corp.aol.com>
Subject Re: Greater-than and less-than in data import SQL queries
Date Mon, 02 Nov 2009 08:04:46 GMT
On Mon, Nov 2, 2009 at 11:34 AM, Amit Nithian <anithian@gmail.com> wrote:
> A thought I had on this from a DIH design perspective. Would it be better to
> have the SQL queries stored in an element rather than an attribute so that
> you can wrap it in a CDATA block without having to mess up the look of query
> with &lt, &gt? Makes debugging easier (I know find and replace is trivial
> but it can be annoying when debugging SQL issues :-)).

Actually most of the parsers are forgiving in this aspect. I mean '<'
and '>' are ok in the xml parser shipped with the jdk.

>
> On Wed, Oct 28, 2009 at 5:15 PM, Lance Norskog <goksron@gmail.com> wrote:
>
>> It is easier to put SQL select statements in a view, and just use that
>> view from the DIH configuration file.
>>
>> On Tue, Oct 27, 2009 at 12:30 PM, Andrew Clegg <andrew.clegg@gmail.com>
>> wrote:
>> >
>> >
>> > Heh, eventually I decided
>> >
>> > "where 4 > node_depth"
>> >
>> > was the most pleasing (if slightly WTF-ish) way of writing it...
>> >
>> > Cheers,
>> >
>> > Andrew.
>> >
>> >
>> > Erik Hatcher-4 wrote:
>> >>
>> >> Use &lt; instead of < in that attribute.  That should fix the issue.
>> >> Remember, it's an XML file, so it has to obey XML encoding rules which
>> >> make it ugly but whatcha gonna do?
>> >>
>> >>       Erik
>> >>
>> >> On Oct 27, 2009, at 11:50 AM, Andrew Clegg wrote:
>> >>
>> >>>
>> >>> Hi,
>> >>>
>> >>> If I have a DataImportHandler query with a greater-than sign in,
>> >>> like this:
>> >>>
>> >>>        <entity name="higher_node" dataSource="database"
>> >>> query="select *,
>> >>> title as keywords from cathnode_text where node_depth > 4">
>> >>>
>> >>> Everything's fine. However, if it contains a less-than sign:
>> >>>
>> >>>        <entity name="higher_node" dataSource="database"
>> >>> query="select *,
>> >>> title as keywords from cathnode_text where node_depth < 4">
>> >>>
>> >>> I get this exception:
>> >>>
>> >>> INFO: Processing configuration from solrconfig.xml:
>> >>> {config=dataconfig.xml}
>> >>> [Fatal Error] :240:129: The value of attribute "query" associated
>> >>> with an
>> >>> element type "null" must not contain the '<' character.
>> >>> 27-Oct-2009 15:30:49
>> >>> org.apache.solr.handler.dataimport.DataImportHandler
>> >>> inform
>> >>> SEVERE: Exception while loading DataImporter
>> >>> org.apache.solr.handler.dataimport.DataImportHandlerException:
>> >>> Exception
>> >>> occurred while initializing context
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .solr
>> >>> .handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:184)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .solr.handler.dataimport.DataImporter.<init>(DataImporter.java:101)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .solr
>> >>> .handler.dataimport.DataImportHandler.inform(DataImportHandler.java:
>> >>> 113)
>> >>>        at
>> >>> org
>> >>> .apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:
>> >>> 424)
>> >>>        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:588)
>> >>>        at
>> >>> org.apache.solr.core.CoreContainer
>> >>> $Initializer.initialize(CoreContainer.java:137)
>> >>>        at
>> >>> org
>> >>> .apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:
>> >>> 83)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina
>> >>> .core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:
>> >>> 275)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina
>> >>> .core
>> >>> .ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:
>> >>> 397)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina
>> >>> .core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.core.StandardContext.filterStart(StandardContext.java:3709)
>> >>>        at
>> >>> org.apache.catalina.core.StandardContext.start(StandardContext.java:
>> >>> 4356)
>> >>>        at
>> >>> org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:
>> >>> 1244)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:
>> >>> 604)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:
>> >>> 129)
>> >>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>> >>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina
>> >>> .core
>> >>> .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
>> >>> 290)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina
>> >>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
>> >>> 233)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
>> >>> 175)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina
>> >>> .authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
>> >>>        at
>> >>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
>> >>> 568)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
>> >>> 109)
>> >>>        at
>> >>> org
>> >>> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
>> >>> 286)
>> >>>        at
>> >>> org
>> >>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java:
>> >>> 844)
>> >>>        at
>> >>> org.apache.coyote.http11.Http11Protocol
>> >>> $Http11ConnectionHandler.process(Http11Protocol.java:583)
>> >>>        at
>> >>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
>> >>> 447)
>> >>>        at java.lang.Thread.run(Thread.java:619)
>> >>> Caused by: org.xml.sax.SAXParseException: The value of attribute
>> >>> "query"
>> >>> associated with an element type "null" must not contain the '<'
>> >>> character.
>> >>>        at
>> >>> com
>> >>> .sun
>> >>> .org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:
>> >>> 239)
>> >>>        at
>> >>> com
>> >>> .sun
>> >>> .org
>> >>> .apache
>> >>> .xerces
>> >>> .internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
>> >>>        at
>> >>> org
>> >>> .apache
>> >>> .solr
>> >>> .handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:172)
>> >>>        ... 30 more
>> >>>
>> >>> Is this fixable, or an unavoidable feature of Xerces? If the latter,
>> >>> perhaps
>> >>> the docs could benefit from a note to say "use NOT a >= b" or
>> >>> something?
>> >>>
>> >>> Speaking of, I found this in the wiki examples for the DIH:
>> >>>
>> >>>            <entity name="item" pk="ID"
>> >>>                query="select * from item"
>> >>>                deltaImportQuery="select * from item where
>> >>> ID=='${dataimporter.delta.id}'"
>> >>>                deltaQuery="select id from item where last_modified
>
>> >>> '${dataimporter.last_index_time}'">
>> >>>
>> >>> Shouldn't that be one equals sign:
>> >>>
>> >>>                deltaImportQuery="select * from item where
>> >>> ID='${dataimporter.delta.id}'"
>> >>>
>> >>> Or is it doing something clever with Java operators?
>> >>>
>> >>> Cheers,
>> >>>
>> >>> Andrew.
>> >>>
>> >>> --
>> >>> View this message in context:
>> >>>
>> http://www.nabble.com/Greater-than-and-less-than-in-data-import-SQL-queries-tp26080100p26080100.html
>> >>> Sent from the Solr - User mailing list archive at Nabble.com.
>> >>>
>> >>
>> >>
>> >>
>> >
>> > --
>> > View this message in context:
>> http://www.nabble.com/Greater-than-and-less-than-in-data-import-SQL-queries-tp26080100p26083680.html
>> > Sent from the Solr - User mailing list archive at Nabble.com.
>> >
>> >
>>
>>
>>
>> --
>> Lance Norskog
>> goksron@gmail.com
>>
>



-- 
-----------------------------------------------------
Noble Paul | Principal Engineer| AOL | http://aol.com

Mime
View raw message