[
https://issues.apache.org/jira/browse/SOLR-6357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16264072#comment-16264072
]
Andrew Hankinson commented on SOLR-6357:
----------------------------------------
Looking at it, I think it does. It looks like it crashes, then on restart
replays the transaction log with the failed DQ, which then re-locks the index.
I can't find the exact log message at the moment, though.
> Using query time Join in deleteByQuery throws ClassCastException
> ----------------------------------------------------------------
>
> Key: SOLR-6357
> URL: https://issues.apache.org/jira/browse/SOLR-6357
> Project: Solr
> Issue Type: Bug
> Components: query parsers
> Affects Versions: 4.9
> Reporter: Arcadius Ahouansou
> Assignee: Mikhail Khludnev
> Fix For: 7.0
>
> Attachments: SOLR-6357.patch
>
>
> Consider the following input document where we have:
> - 1 Samsung mobile phone and
> - 2 manufactures: Apple and Samsung.
> {code}
> [
> {
> "id":"galaxy note ii",
> "cat":"product",
> "manu_s":"samsung"
> },
> {
> "id":"samsung",
> "cat":"manufacturer",
> "name":"Samsung Electronics"
> },
> {
> "id":"apple",
> "cat":"manufacturer",
> "name":"Apple Inc"
> }
> ]
> {code}
> My objective is to delete from the default index all manufacturers not having
> any product in the index.
> After indexing ( curl 'http://localhost:8983/solr/update?commit=true' -H
> "Content-Type: text/json" --data-binary @delete-by-join-query.json )
> I went to
> {code}http://localhost:8983/solr/select?q=cat:manufacturer -{!join
> from=manu_s to=id}cat:product
> {code}
> and I could see only Apple, the only manufacturer not having any product in
> the index.
> However, when I use that same query for deletion:
> {code}
> http://localhost:8983/solr/update?commit=true&stream.body=<delete><query>cat:manufacturer
> -{!join from=manu_s to=id}cat:product</query></delete>
> {code}
> I get
> {code}
> java.lang.ClassCastException: org.apache.lucene.search.IndexSearcher cannot
> be cast to org.apache.solr.search.SolrIndexSearcher
> at
> org.apache.solr.search.JoinQuery.createWeight(JoinQParserPlugin.java:143)
> at
> org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:185)
> at
> org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:526)
> at
> org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:185)
> at
> org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:526)
> at
> org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:684)
> at
> org.apache.lucene.search.QueryWrapperFilter.getDocIdSet(QueryWrapperFilter.java:55)
> at
> org.apache.lucene.index.BufferedUpdatesStream.applyQueryDeletes(BufferedUpdatesStream.java:552)
> at
> org.apache.lucene.index.BufferedUpdatesStream.applyDeletesAndUpdates(BufferedUpdatesStream.java:287)
> at
> {code}
> This seems to be a bug.
> Looking at the source code, the exception is happening in {code}
> @Override
> public Weight createWeight(IndexSearcher searcher) throws IOException {
> return new JoinQueryWeight((SolrIndexSearcher)searcher);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]