<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi!</p>
    <p>Thank you for your report, we'll look thru it.</p>
    <p>Aki<br>
    </p>
    <div class="moz-cite-prefix">On 9.12.2018 11.24, Joan Moreau via
      dovecot wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:b08db29265e52cfb82e08e06fb603d6f@grosjo.net">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>However, Solr crashes and Dovecot plugin ftS_solr returns
        multitude of errors</p>
      <p>Dec 09 09:21:09
        imap(<a class="moz-txt-link-abbreviated" href="mailto:jom@grosjo.net">jom@grosjo.net</a>)<3349><DiRnXpN8Lux/AAAB>: Error:
        fts_solr: received invalid uid '0'<br>
        Dec 09 09:21:10
        imap(<a class="moz-txt-link-abbreviated" href="mailto:jom@grosjo.net">jom@grosjo.net</a>)<3349><DiRnXpN8Lux/AAAB>: Error:
        fts_solr: received invalid uid '0'</p>
      <p>And returns are totaly funny (keywords not presentin teh
        results)</p>
      <p><br>
      </p>
      <p>I am back to fs_squat....</p>
      <div id="signature"> </div>
      <p><br>
      </p>
      <p id="reply-intro">On 2018-12-08 18:28, Joan Moreau via dovecot
        wrote:</p>
      <blockquote type="cite" style="padding: 0 0.4em; border-left:
        #1010ff 2px solid; margin: 0"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
        <p>After some testsing, I managed to get proper functionning</p>
        <p>- The schema.xml is attached below (quite different from the
          one provided on teh wiki) (in bold the core differences)
          (NGramFilterFactory is the class that replace the fts_squat
          "partial=3 full=15", everything else is just a big hammer to
          smash a tiny fly)</p>
        <p>- One need to remove the "managed-schema" file in the <tt
            class="backtick">{prefix}/server/solr/dovecot/conf</tt>.</p>
        <p>- One need to remove everything under <tt class="backtick">{prefix}/server/solr/dovecot/data</tt>/</p>
        <div id="signature">- The <tt class="backtick">{prefix}/server/solr/dovecot/conf</tt>/solrconfig.xml
          is as below (see diff)</div>
        <div> </div>
        <div>- Restart Solr</div>
        <div> </div>
        <div>- my dovecot.conf is :</div>
        <div>
          <p>fts = solr<br>
            fts_autoindex = yes<br>
            fts_enforced = yes<br>
            fts_decoder = decode2text</p>
          <p>fts_solr = url=<a class="moz-txt-link-freetext" href="http://(SOLR">http://(SOLR</a> SERVER):8983/solr/dovecot/</p>
          <p><br>
          </p>
          <p>--- schema.xml</p>
          <p><?xml version="1.0" encoding="UTF-8"?><br>
            <schema name="dovecot" version="2.0"><br>
            <uniqueKey>id</uniqueKey><br>
            <br>
            <strong><fieldType name="string" class="solr.StrField"
              /></strong><br>
            <strong><fieldType name="long" class="solr.TrieLongField"
              /></strong><br>
            <strong><fieldType name="boolean" class="solr.BoolField"
              /></strong><br>
            <fieldType name="text" class="solr.TextField"
            autoGeneratePhraseQueries="true"
            positionIncrementGap="100"><br>
            <analyzer type="index"><br>
            <tokenizer class="solr.StandardTokenizerFactory"/><br>
            <filter class="solr.StopFilterFactory"
            words="stopwords.txt" ignoreCase="true"/><br>
            <filter class="solr.WordDelimiterGraphFilterFactory"
            generateWordParts="1" generateNumberParts="1"
            splitOnCaseChange="1" splitOnNumerics="1" catenateWords="1"
            catenateNumbers="1" catenateAll="1"/><br>
            <filter class="solr.FlattenGraphFilterFactory"/>
            <!-- required on index analyzers after graph filters
            --><br>
            <filter class="solr.LowerCaseFilterFactory"/><br>
            <strong><filter class="solr.NGramFilterFactory"
              minGramSize="3" maxGramSize="15" /></strong><br>
            <filter class="solr.KeywordMarkerFilterFactory"
            protected="protwords.txt"/><br>
            <filter class="solr.PorterStemFilterFactory"/><br>
            </analyzer><br>
            <analyzer type="query"><br>
            <tokenizer class="solr.StandardTokenizerFactory"/><br>
            <filter class="solr.SynonymGraphFilterFactory"
            expand="true" ignoreCase="true" synonyms="synonyms.txt"/><br>
            <filter class="solr.FlattenGraphFilterFactory"/>
            <!-- required on index analyzers after graph filters
            --><br>
            <filter class="solr.StopFilterFactory"
            words="stopwords.txt" ignoreCase="true"/><br>
            <filter class="solr.WordDelimiterGraphFilterFactory"
            generateWordParts="1" generateNumberParts="1"
            splitOnCaseChange="1" splitOnNumerics="1" catenateWords="1"
            catenateNumbers="1" catenateAll="1"/><br>
            <filter class="solr.LowerCaseFilterFactory"/><br>
            <strong><filter class="solr.NGramFilterFactory"
              minGramSize="3" maxGramSize="15" /></strong><br>
            <filter class="solr.KeywordMarkerFilterFactory"
            protected="protwords.txt"/><br>
            <filter class="solr.PorterStemFilterFactory"/><br>
            </analyzer><br>
            </fieldType><br>
            <br>
            <field name="_version_" type="long" indexed="true"
            stored="true"/><br>
            <field name="bcc" type="text" indexed="true"
            stored="false"/><br>
            <field name="body" type="text" indexed="true"
            stored="false"/><br>
            <field name="box" type="string" indexed="true"
            required="true" stored="true"/><br>
            <field name="cc" type="text" indexed="true"
            stored="false"/><br>
            <field name="from" type="text" indexed="true"
            stored="false"/><br>
            <field name="hdr" type="text" indexed="true"
            stored="false"/><br>
            <field name="id" type="string" indexed="true"
            required="true" stored="true"/><br>
            <field name="subject" type="text" indexed="true"
            stored="false"/><br>
            <field name="to" type="text" indexed="true"
            stored="false"/><br>
            <field name="uid" type="long" indexed="true"
            required="true" stored="true"/><br>
            <field name="user" type="string" indexed="true"
            required="true" stored="true"/><br>
            </schema></p>
          <p><br>
          </p>
          <p>------ diff solrconfig</p>
          <p>--- /data/backup/solr/solrconfig.xml.joan 2018-12-08
            14:31:47.716344505 +0000<br>
            +++ solrconfig.xml 2018-12-08 15:36:28.948267225 +0000<br>
            @@ -1128,6 +1128,7 @@<br>
            <br>
            See <a class="moz-txt-link-freetext" href="http://wiki.apache.org/solr/GuessingFieldTypes">http://wiki.apache.org/solr/GuessingFieldTypes</a><br>
            --><br>
            + <schemaFactory
            class="ClassicIndexSchemaFactory"></schemaFactory><br>
            <updateProcessor class="solr.UUIDUpdateProcessorFactory"
            name="uuid"/><br>
            <updateProcessor
            class="solr.RemoveBlankFieldUpdateProcessorFactory"
            name="remove-blank"/><br>
            <updateProcessor
            class="solr.FieldNameMutatingUpdateProcessorFactory"
            name="field-name-mutating"><br>
            @@ -1158,43 +1159,8 @@<br>
            <str>yyyy-MM-dd</str><br>
            </arr><br>
            </updateProcessor><br>
            - <updateProcessor
            class="solr.AddSchemaFieldsUpdateProcessorFactory"
            name="add-schema-fields"><br>
            - <lst name="typeMapping"><br>
            - <str name="valueClass">java.lang.String</str><br>
            - <str name="fieldType">text_general</str><br>
            - <lst name="copyField"><br>
            - <str name="dest">*_str</str><br>
            - <int name="maxChars">256</int><br>
            - </lst><br>
            - <!-- Use as default mapping instead of defaultFieldType
            --><br>
            - <bool name="default">true</bool><br>
            - </lst><br>
            - <lst name="typeMapping"><br>
            - <str name="valueClass">java.lang.Boolean</str><br>
            - <str name="fieldType">booleans</str><br>
            - </lst><br>
            - <lst name="typeMapping"><br>
            - <str name="valueClass">java.util.Date</str><br>
            - <str name="fieldType">pdates</str><br>
            - </lst><br>
            - <lst name="typeMapping"><br>
            - <str name="valueClass">java.lang.Long</str><br>
            - <str name="valueClass">java.lang.Integer</str><br>
            - <str name="fieldType">plongs</str><br>
            - </lst><br>
            - <lst name="typeMapping"><br>
            - <str name="valueClass">java.lang.Number</str><br>
            - <str name="fieldType">pdoubles</str><br>
            - </lst><br>
            - </updateProcessor><br>
            <br>
            <!-- The update.autoCreateFields property can be turned
            to false to disable schemaless mode --><br>
            - <updateRequestProcessorChain
            name="add-unknown-fields-to-the-schema"
            default="${update.autoCreateFields:true}"<br>
            -
processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields"><br>
            - <processor class="solr.LogUpdateProcessorFactory"/><br>
            - <processor
            class="solr.DistributedUpdateProcessorFactory"/><br>
            - <processor class="solr.RunUpdateProcessorFactory"/><br>
            - </updateRequestProcessorChain><br>
            <br>
            <!-- Deduplication<br>
            <br>
            @@ -1273,7 +1239,6 @@<br>
            <!-- The following response writers are implicitly
            configured unless<br>
            overridden...<br>
            --><br>
            - <!--<br>
            <queryResponseWriter name="xml"<br>
            default="true"<br>
            class="solr.XMLResponseWriter" /><br>
            @@ -1284,7 +1249,6 @@<br>
            <queryResponseWriter name="phps"
            class="solr.PHPSerializedResponseWriter"/><br>
            <queryResponseWriter name="csv"
            class="solr.CSVResponseWriter"/><br>
            <queryResponseWriter name="schema.xml"
            class="solr.SchemaXmlResponseWriter"/><br>
            - --><br>
            <br>
            <queryResponseWriter name="json"
            class="solr.JSONResponseWriter"><br>
            <!-- For the purposes of the tutorial, JSON responses are
            written as<br>
            @@ -1293,7 +1257,7 @@<br>
            --><br>
            <str name="content-type">text/plain;
            charset=UTF-8</str><br>
            </queryResponseWriter><br>
            -<br>
            + <br>
            <!--<br>
            Custom response writers can be declared as needed...<br>
            --></p>
          <p><br>
          </p>
          <p><br>
          </p>
          <p><br>
          </p>
        </div>
      </blockquote>
    </blockquote>
  </body>
</html>