Ah, I see - thanks for explaining that you’re not operating on tokens like that.
Given that, I think the best place to implement this is as a QParserPlugin - that gives you the query string and allows you to return a standard Lucene Query. Erik > On Jul 25, 2016, at 9:44 AM, sara hajili <hajili.s...@gmail.com> wrote: > > i saw synonym Filter but it is not sufficient for me.as i saw this, i must > build synonym filter map . that this is built like a map i mean i must put > exactly in synonym map for example "home" is synonym of "house" (for > example). > so in query when user insert home it filter add house to it and expand this. > but i don't want this. i have a algorithm that get n words and according to > it and use of wordnet ,it make a decision that what word must be add to > expand this query. it depends on all words exist on query. > so i can not tokenize my query word by word. > because of if i tokenize query word by word .then in synonym filter factory > i have just one token and i can not make a decision what word must be added > to query. i need to have all word together. > and also i can not tokenize my query with "." for example because i wanna > to tokenize my query word by word to normalize every word. so i can not > change tokenize format. > and i can not use synonymfilterfactory. > how i can do this?i got all query words and expand this with my algorithm > based on using wordnet? > > On Mon, Jul 25, 2016 at 5:32 AM, Erik Hatcher <erik.hatc...@gmail.com> > wrote: > >> You’re going to need to tokenize to look up words, so a TokenFilter is a >> better place to put this sort of thing, I think. >> >> Build off of Lucene’s SynonymFilter (and corresponding >> SynonymFilterFactory) >> https://github.com/apache/lucene-solr/blob/5e5fd662575105de88d8514b426bccdcb4c76948/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java >> < >> https://github.com/apache/lucene-solr/blob/5e5fd662575105de88d8514b426bccdcb4c76948/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java >>> >> >> I’m not sure exactly what your code is trying to do (please share that as >> well, for best assistance), but I do not recommend putting custom code into >> Solr’s package namespaces (and obviously that has issues here, because of >> the separate JAR and visibility/access). >> >> Erik >> >> >>> On Jul 25, 2016, at 2:25 AM, sara hajili <hajili.s...@gmail.com> wrote: >>> >>> 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 >>>>>> >>>> >> >>