Typically I'll just delete the entire data dir recursively after shutting
down Solr, the default location is <solr_home>/solr/collectionblah/data


On Wed, Sep 11, 2013 at 6:01 PM, Brian Robinson
<br...@socialsurgemedia.com>wrote:

> Thanks Shawn. I had actually tried changing &load= to &amp;load=, but
> still got the error. It sounds like addDocuments is worth a try, though.
>
>
> On 9/11/2013 4:37 PM, Shawn Heisey wrote:
>
>> On 9/11/2013 2:17 PM, Brian Robinson wrote:
>>
>>> I'm in the process of creating my index using a series of
>>> SolrClient::request commands in PHP. I ran into a problem when some of
>>> the fields that I had as "text_general" fieldType contained "&load=" in
>>> a URL, triggering an error because the HTML entity "load" wasn't
>>> recognized. I realized that I should have made my URL fields of type
>>> "string" instead, so that they would be taken as is (they're not being
>>> indexed, just stored), so I removed all docs from my index, updated
>>> schema.xml, and restarted Solr, but I'm still getting the same error. Do
>>> I need to delete the index itself and then restart to get this to work?
>>> Am I correct that changing those fields to "string" type should fix the
>>> issue?
>>>
>>
>> Changing the field type is not going to affect this issue. Because you
>> are not indexing the field, the choice of string or text_general is not
>> really going to matter, but string will probably be more efficient.
>>
>> What is happening here is an XML issue with the update request itself.
>> The PHP client is sending an XML update request to Solr, and the request
>> includes the URL text as-is in the XML request. It is not properly XML
>> encoded.  For an XML update request, that snippet of your text would need
>> to be encoded as "&amp;load=" to work properly.
>>
>> XML has a much smaller list of valid entities than HTML, but "load" is
>> not a valid entity in either XML or HTML.
>>
>> I was going to call this a bug in the PHP client library, but then I got
>> a look at what SolrClient::request actually does:
>>
>> http://php.net/manual/en/**solrclient.request.php<http://php.net/manual/en/solrclient.request.php>
>>
>> It expects you to create the XML yourself, which means you have to do all
>> the encoding of characters which have special meaning to XML.
>>
>> If you have no desire to figure out proper XML encoding, you should
>> probably be using SolrClient::addDocument or SolrClient::addDocuments
>> instead.
>>
>> Thanks,
>> Shawn
>>
>>
>>
>

Reply via email to