Joan,
I understand and sympathize with your frustration - trying to get multiple applications to work together, particularly given the lack of documentation for some of them, can be extremely challenging. That said, I suggest you consider an alternative viewpoint. Frequently being misunderstood myself I apologize in advance if I'm reading you wrong - but it appears your view towards the situation is there is a bug in Dovecot related to this problem. That may well be - but I generally approach these matters from the assumption that *I* made the error in configuration and go from there. I'm not an official rep for any product nor claim to be any form of expert in these matters - but I do have a working setup and I'd like to help you if I can. If you're willing to - take a deep breath and let's try starting over.
Looking back through your emails there were two items that stood out - your Dovecot config has two settings I don't use: "fts_decoder" and "fts_enforced". I also asked you earlier whether or not NFS is involved here and I didn't see an answer - please clarify.
I suggest you try once more: delete Solr completely. Re-install
per the directions and use *my* managed-schema. Also comment out
the Dovecot directives for "fts_decoder" and "fts_enforced" so
you're closer to my setup. Try running again and then post back -
I'll do what I can. Based on the fact that Dovecot+Solr 7.5+my
schema is working for me leads me to believe we can get it working
for you as well.
Daniel
here my latest schema.xml (remove the "long" type hich seems to be very deprecated in 7.x)
<?xml version="1.0" encoding="UTF-8"?>
<schema name="dovecot" version="2.0">
<uniqueKey>id</uniqueKey>
<types>
<fieldType name="string" class="solr.StrField" />
<fieldType name="gjlong" class="solr.LongPointField" positionIncrementGap="0" />
<fieldType name="gjtext" class="solr.TextField" autoGeneratePhraseQueries="true" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="1" splitOnNumerics="1" catenateWords="1" catenateNumbers="1" catenateAll="1"/>
<filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="1" splitOnNumerics="1" catenateWords="1" catenateNumbers="1" catenateAll="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="_version_" type="string" indexed="true" stored="true"/>
<field name="bcc" type="string" indexed="false" stored="false"/>
<field name="body" type="gjtext" indexed="true" stored="false"/>
<field name="box" type="string" indexed="true" required="true" stored="true"/>
<field name="hdr" type="gjtext" indexed="false" stored="false"/>
<field name="cc" type="gjtext" indexed="true" stored="false"/>
<field name="from" type="gjtext" indexed="true" stored="false"/>
<field name="id" type="string" indexed="true" required="true" stored="true"/>
<field name="subject" type="gjtext" indexed="true" stored="false"/>
<field name="to" type="gjtext" indexed="true" stored="false"/>
<field name="uid" type="string" indexed="true" required="true" stored="true"/>
<field name="user" type="string" indexed="true" required="true" stored="true"/>
</fields>
</schema>
Daniel,I have done that so any times (deleteing the data folders, recreating the instance, restarting etc...)But this is really not the issueThe issue is1 - fts_solr reports errors in the log file (this is a pure dovecot issue) : how to have much more details on what fts_solr sends to Slor server and what does it returns ?2 - Solr returns properly for a few hours, then starts crashing or responding non-sense after some timeAdditionally, is there a doc of fts-squat in order to adjust the code to new releases of dovect ?On December 12, 2018 4:44:10 PM Daniel Miller via dovecot <dovecot@dovecot.org> wrote:
On 12/11/2018 4:46 AM, Joan Moreau via dovecot wrote:
I shared the errors already so many times (check this mailinling for "solr" in teh title)
Contrary to what you say, with SOlr 7.5 and Dovecot git, I had to remove the "managed-schema" to make solr respond a bit properly. It relies on schema.xml
In order to create the instance, no, it copies the default config in the dovecot instance.
I'm not a Solr expert by any means but I believe you are incorrect.
As of Solr 5.x the managed-schema file is the primary method for configuration. The method I detailed previously for setting up a config helps automate creating new Solr instances - but as I stated you can either setup a Solr template and then create the instance from that or create an instance using the default template and then adjust it.
The part that you *must* do after creating from the default template is stop the server, delete the entire "<prefix>/solr/dovecot/data" folder, then install the correct managed-schema file, then restart the server. The server will not function with mismatched schema/data.
If you'll try that - explicitly "rm -rf <prefix>/solr/dovecot/data", copy the managed-schema file into the conf folder, and restart - things will either work or there's something else that needs correction.
--
Daniel