<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 9pt; font-family: Verdana,Geneva,sans-serif'>
<p>However, Solr crashes and Dovecot plugin ftS_solr returns multitude of errors</p>
<p>Dec 09 09:21:09 imap(jom@grosjo.net)<3349><DiRnXpN8Lux/AAAB>: Error: fts_solr: received invalid uid '0'<br />Dec 09 09:21:10 imap(jom@grosjo.net)<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=http://(SOLR 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 http://wiki.apache.org/solr/GuessingFieldTypes<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>
</body></html>