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.
>>>
>>>
>>
>

Reply via email to