Not sure if it helps beyond the steps to reproduce that I supplied above, but I also see that "Omit Term Frequencies & Positions" is still set on the field according to the LukeRequestHandler:
<str name="flags">ITS------OF------</str> On Mon, Jun 5, 2017 at 1:18 PM, Solr User <solr...@gmail.com> wrote: > Sorry for the delay. I was able to reproduce this easily with my setup, > but reproducing this on a Solr example proved challenging. Hopefully the > work that I did to find the situation in which this is produced will help > in resolving the problem. The driving factor for this appears to be how > updates are sent to Solr. When sending batches of updates with commits, > the problem is reproduced. If the commit is held until after all updates > are sent, then no problem is produced. This leads me to believe that this > issue has something to do with overlapping commits or index merges. This > was reproducible regardless of running classic or managed schema and > regardless of running Solr core or SolrCloud. > > There are not many steps to reproduce this, but you will need a way to > send these updates. I have included inline create.sh and create.pl > scripts to generate the data and send the updates. You can index a > lastModified field or something to convince yourself that everything has > been re-indexed. I left that out to keep the steps lean. Also, this test > is using commit statements from the client sending the updates for > simplicity even though it is not a good practice. My normal setup is using > Solrj with commitWithin to allow Solr to manage when the commits take > place, but the same error is produced either way. > > > *STEPS TO REPRODUCE* > > 1. Install Solr 5.5.3 and change to that working directory > 2. bin/solr -e techproducts > 3. bin/solr stop [Why these next 3 steps? These are to start the > index completely new without the 32 example documents as opposed to a > delete query. The documents are not posted after the core is detected the > second time.] > 4. rm -rf ./example/techproducts/solr/techproducts/data/ > 5. bin/solr -e techproducts > 6. ./create.sh > 7. curl -X POST -H 'Content-type:application/json' --data-binary '{ > "replace-field":{ "name":"cat", "type":"text_en_splitting", "indexed":true, > "multiValued":true, "stored":true } }' http://localhost:8983/solr/ > techproducts/schema > 8. http://localhost:8983/solr/techproducts/select?q=cat:% > 22hard%20drive%22 [error] > 9. ./create.sh > 10. http://localhost:8983/solr/techproducts/select?q=cat:% > 22hard%20drive%22 [error even though all documents have been > re-indexed] > > *create.sh* > #!/bin/bash > for i in {1..100}; do > echo "$i" > ./create.pl $i > ./create.xml$i > curl http://localhost:8983/solr/techproducts/update?commit=true -H > "Content-Type: text/xml" --data-binary @./create.xml$i > done > > *create.pl <http://create.pl>* > #!/usr/bin/perl > my $S = $ARGV[0]; > my $I = 100; > my $N = $S*$I + $I; > my $i; > print "<add>\n"; > for($i=$S*$I; $i<$N; $i++) { > print "<doc><field name=\"id\">SP${i}</field><field name=\"cat\">cat > hard drive ${i}</field></doc>\n"; > } > print "</add>\n"; > > > On Fri, May 26, 2017 at 2:14 AM, Rick Leir <rl...@leirtech.com> wrote: > >> Can you reproduce this error? What are the steps you take to reproduce >> it? ( simple is better). >> >> cheers -- Rick >> >> >> >> On 2017-05-25 05:46 PM, Solr User wrote: >> >>> This is in regards to changing a field type from string to >>> text_en_splitting, re-indexing all documents, even optimizing to give the >>> index a chance to merge segments and rewrite itself entirely, and then >>> getting this error when running a phrase query: >>> java.lang.IllegalStateException: field "blah" was indexed without >>> position >>> data; cannot run PhraseQuery >>> >>> I have encountered this issue before and have always done one of the >>> following as a work-around: >>> 1. Instead of changing the field type on an existing field just create a >>> new field and retire the old one. >>> 2. Delete the index directory and start from scratch. >>> >>> These work-arounds are not always ideal. Does anyone know what is >>> holding >>> onto that old field type definition? What thinks it is still a string? >>> Every document has been re-indexed and I am sure of this because I have a >>> time stamp indexed. Is there any other way to get this to work? >>> >>> For what it is worth, I am running this in SolrCloud mode but I remember >>> seeing this issue before SolrCloud was released as well. >>> >>> >> >