i use solr 6-1-0. and i write my own search Handler .i got this error: java.lang.IllegalAccessError: tried to access field org.apache.solr.handler.component.ResponseBuilder.requestInfo from class org.apache.solr.handler.component.MyResponseBuilder at org.apache.solr.handler.component.MyResponseBuilder.getRequestInfo(MyResponseBuilder.java:19) at org.apache.solr.handler.component.MySearchHandler.handleRequestBody(MySearchHandler.java:94) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:156) at org.apache.solr.core.SolrCore.execute(SolrCore.java:2036) at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:657) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:464) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:518) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) at java.lang.Thread.run(Thread.java:745)
because of in solr6-1-0 searchHandler 2 fields in responseBuilder declare as a package access type(isDistrib and requestInfo).and in this class does not exist any getter to this fields. so when i implement MySearchHandler and create new class "MySearchHandler" in new java project and put in package "org.apache.solr.handler" and extends mySearchHandler form searchHandler. so in compile time it is not issue that we use field with package access("idea in compile time assume that they are in same package") but when i create a jar file and put in solr .and in solr-config file i put my handler "MySearchHandler" as /mySearchhandler i got above error. so it shows that in runtime solr find 2 jar file with same package name.but could not recognize that they are in same package and let mysearchHandler to use filed of "isDistrib and requestInfo (with package declare)" so i see that searchhandler is in solr-core jar file,.so i puth this jarfile to my searchhandler jar file,and delete solr-core jar file from lib of solr web-app and then restart solr."i do this because i don't have a 2 jar file with same packae name ,and in run time solr fo=ind out them in same package and let me to uyse 2 fileds" but after do that i try to start solr .but now solr did n't start and i got this in command line: "solr could n't start after 30 second." // some thing like a timeout exception so now i think maybe i select a wrong approach to expand my queries and add wordnet to solr. and please describe how i can use synonym filter factory or tokenizar that u said i can use them to expand query. tnx On Sun, Jul 24, 2016 at 12:09 PM, Erik Hatcher <erik.hatc...@gmail.com> wrote: > Have a look at Solr's source code and you will see many TokenFilter > implementations. The synonym token filter is the closest to what you want. > > But maybe first - please detail (copy/paste) the exact error you were > getting in your handler. It's still not my recommended approach but it > sounds like you're new to Solr development and need to iron out some issues > first. > > Erik > > > On Jul 24, 2016, at 13:20, sara hajili <hajili.s...@gmail.com> wrote: > > > > How i can implement this as q token filter.? > > I wanna to expand query with wordnet. > > So i try to implement my search handler. In this way i got solrparam. Q > > And send it to wordnet and expand this. > > I write this to mysearch handler. So when user insert a query like q=tree > > and apple. > > I expand this query with orange. > >> On Jul 24, 2016 8:37 PM, "Erik Hatcher" <erik.hatc...@gmail.com> wrote: > >> > >> My first inclination would be to implement this as a TokenFilter > instead. > >> Can you provide some examples of what you want? > >> > >>> On Jul 24, 2016, at 08:22, sara hajili <hajili.s...@gmail.com> wrote: > >>> > >>> hi all. > >>> i wanna to expand my queries with wordnet ... > >>> so i try to write my own SearchHandler class."/mysearchHandler" > >>> so i add new requestHandler in solr-config /mySearchHandler > >>> but i faced with problem. i found some field that they were package > >> access . > >>> so i get access error in run query.(this field does n't have any getter > >> to > >>> use them) > >>> and now my question is what is best approach to expand my queris with > >>> wordnet? > >>> is good to write my own searchHandler?and overwrite it to get my > result? > >>> tnx > >> >