Oh, there are a number of reasons a text-based field wouldn't work, omitPosition=true would be one ;).
Glad to hear it's working though. Best, Erick On Wed, Aug 22, 2018 at 10:42 AM, Hanjan, Harinder <harinder.han...@calgary.ca> wrote: > Perhaps my memory fails me, I remember setting it as a text field and it not > working. In any case, I have set it up as follows and things are working well. > > <fieldType name="text_type-ahead" class="solr.TextField" > positionIncrementGap="100"> > <analyzer> > <tokenizer class="solr.StandardTokenizerFactory"/> > <filter class="solr.LowerCaseFilterFactory"/> > </analyzer> > </fieldType> > > Thanks Erick! > > -----Original Message----- > From: Erick Erickson [mailto:erickerick...@gmail.com] > Sent: Wednesday, August 22, 2018 11:16 AM > To: solr-user <solr-user@lucene.apache.org> > Subject: [EXT] Re: field was indexed without position data; cannot run > SpanTermQuery > > StrFields are, by definition, unanalyzed. They cannot have position > information because they are always one token. Searching for a phrase on a > single token makes no sense. The error message is a little odd, but accurate. > > You'll have to re-index as a text-based field if you want this kind of > functionality, and position information must be enabled on that field or > you'll get the same error (see omitTermFreqAndPosition, omitPosition etc. > here: > https://urldefense.proofpoint.com/v2/url?u=https-3A__lucene.apache.org_solr_guide_6-5F6_defining-2Dfields.html&d=DwIFaQ&c=jdm1Hby_BzoqwoYzPsUCHSCnNps9LuidNkyKDuvdq3M&r=N30IrhmaeKKhVHu13d-HO9gO9CysWnvGGoKrSNEuM3U&m=2GSWQKu6aYflteP6PPE5Td_FWHCz0OtC_mDEDe7HBDU&s=HpsOvlutGSAh9qm_xbMoTeRgoXfpA3Emq3okIoHpoP0&e=) > > Best, > Erick > > On Wed, Aug 22, 2018 at 9:58 AM, Hanjan, Harinder > <harinder.han...@calgary.ca> wrote: >> Hello! >> >> I am doing wildcard queries to satisfy our search type ahead requirement for >> both single and mutli word (phrases) queries. >> I just noticed this error in the logs. >> >> 2018-08-22 16:36:48.433 INFO (qtp1654589030-18) [ x:suggestions] >> o.a.s.c.S.Request [suggestions] webapp=/solr path=/select >> params={q={!complexphrase}"traffic+c*"} status=500 QTime=7 >> 2018-08-22 16:36:48.433 ERROR (qtp1654589030-18) [ x:suggestions] >> o.a.s.s.HttpSolrCall null:java.lang.IllegalStateException: field >> "suggestion" was indexed without position data; cannot run SpanTermQuery >> (term=traffic) >> >> The error is only thrown when I search for phrases but works fine for single >> word queries. >> This causes the error: q={!complexphrase}"traffic c*" >> This runs fine: q={!complexphrase}"traffic*" >> >> <field name="suggestion" type="string" stored="true" indexed="true" >> required="true" /> <fieldType name="string" class="solr.StrField" >> sortMissingLast="true" /> >> >> How can I troubleshoot this? The field 'suggestion' is stored as a StrField, >> could that be the reason? >> >> >> Full stack trace: >> 2018-08-22 16:55:49.164 INFO (qtp1654589030-17) [ x:suggestions] >> o.a.s.c.S.Request [suggestions] webapp=/solr path=/select >> params={q={!complexphrase}"traffic+c*"} status=500 QTime=6 >> 2018-08-22 16:55:49.164 ERROR (qtp1654589030-17) [ x:suggestions] >> o.a.s.s.HttpSolrCall null:java.lang.IllegalStateException: field >> "suggestion" was indexed without position data; cannot run SpanTermQuery >> (term=traffic) >> at >> org.apache.lucene.search.spans.SpanTermQuery$SpanTermWeight.getSpans(S >> panTermQuery.java:119) at >> org.apache.lucene.search.spans.SpanNearQuery$SpanNearWeight.getSpans(S >> panNearQuery.java:214) at >> org.apache.lucene.search.spans.SpanWeight.scorer(SpanWeight.java:121) >> at >> org.apache.lucene.search.spans.SpanWeight.scorer(SpanWeight.java:38) >> at org.apache.lucene.search.Weight.bulkScorer(Weight.java:147) >> at >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:657) >> at >> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:462) >> at >> org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(Sol >> rIndexSearcher.java:215) at >> org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearche >> r.java:1600) at >> org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher >> .java:1417) at >> org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java >> :584) at >> org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSea >> rch(QueryComponent.java:1435) at >> org.apache.solr.handler.component.QueryComponent.process(QueryComponen >> t.java:375) at >> org.apache.solr.handler.component.SearchHandler.handleRequestBody(Sear >> chHandler.java:295) at >> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandle >> rBase.java:177) at >> org.apache.solr.core.SolrCore.execute(SolrCore.java:2503) >> at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:710) >> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:516) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter >> .java:382) at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter >> .java:326) at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletH >> andler.java:1751) at >> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java: >> 582) at >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.ja >> va:143) at >> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java >> :548) at >> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandle >> r.java:226) at >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandle >> r.java:1180) at >> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:5 >> 12) at >> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler >> .java:185) at >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler >> .java:1112) at >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.ja >> va:141) at >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(Conte >> xtHandlerCollection.java:213) at >> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerColle >> ction.java:119) at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper. >> java:134) at >> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler >> .java:335) at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper. >> java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) >> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) >> at >> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java >> :251) at >> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(Abstrac >> tConnection.java:283) at >> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) >> at >> org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint >> .java:93) at >> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executePr >> oduceConsume(ExecuteProduceConsume.java:303) >> at >> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceCo >> nsume(ExecuteProduceConsume.java:148) >> at >> org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(Execu >> teProduceConsume.java:136) at >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool >> .java:671) at >> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool. >> java:589) at java.lang.Thread.run(Thread.java:748) >> >> >> >> Thanks! >> Harinder >> >> ________________________________ >> NOTICE - >> This communication is intended ONLY for the use of the person or entity >> named above and may contain information that is confidential or legally >> privileged. If you are not the intended recipient named above or a person >> responsible for delivering messages or communications to the intended >> recipient, YOU ARE HEREBY NOTIFIED that any use, distribution, or copying of >> this communication or any of the information contained in it is strictly >> prohibited. If you have received this communication in error, please notify >> us immediately by telephone and then destroy or delete this communication, >> or return it to us by mail if requested by us. The City of Calgary thanks >> you for your attention and co-operation.