• Resolved Erwin van Brandwijk

    (@evanbrandwijk)


    Hi,

    My environment is;
    – WordPress 4.1.1
    – Latest WPsolr
    – Solr 4.0.0 / Lucene 4.0 on tomcat7 (osx)

    I have downloaded the plugin and followed the instructions. The first time I tried to use the solrconfig.xml file from the releases page. But that resulted in a couple errors.

    So I used a config file from another core. I can connect with my Solr server and index the my content. But the search isn’t working properly. I can’t search on partial words for example.

    I am not an expert in Solr configuration. I understand schema.xml.

    solrconfig.xml

    <config>
      <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
      <!--  The DirectoryFactory to use for indexes.
            solr.StandardDirectoryFactory, the default, is filesystem based.
            solr.RAMDirectoryFactory is memory based, not persistent, and doesn't work with replication. -->
      <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
      <lib dir="/etc/tomcat7/solr/dist/" regex="apache-solr-cell-\d.*\.jar" />
       <lib dir="/etc/tomcat7/solr/contrib/extraction/lib" regex=".*\.jar" />
      <dataDir>${solr.core0.data.dir:}</dataDir>
      <updateHandler class="solr.DirectUpdateHandler2">
        <updateLog>
          <str name="dir">${solr.core0.data.dir:}</str>
        </updateLog>
      </updateHandler>
    
      <!-- realtime get handler, guaranteed to return the latest stored fields
        of any document, without the need to commit or open a new searcher. The current
        implementation relies on the updateLog feature being enabled. -->
      <requestHandler name="/get" class="solr.RealTimeGetHandler">
        <lst name="defaults">
          <str name="omitHeader">true</str>
        </lst>
      </requestHandler>
    
      <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
    <requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
      <requestDispatcher handleSelect="true" >
        <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
      </requestDispatcher>
    
      <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
      <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
      <requestHandler name="/update" class="solr.UpdateRequestHandler"  />
      <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
         <requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler">
            <lst name="defaults">
                    <str name="fmap.Last-Modified">last_modified</str>
                    <str name="fmap.content">document_contents</str>
                    <str name="uprefix">ignored_</str>
            </lst>
         </requestHandler>
      <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
        <lst name="invariants">
          <str name="q">solrpingquery</str>
        </lst>
        <lst name="defaults">
          <str name="echoParams">all</str>
        </lst>
      </requestHandler>
    
      <!-- config for the admin interface -->
      <admin>
        <defaultQuery>solr</defaultQuery>
      </admin>
    
    </config>

    schema.xml (from release page)

    <?xml version="1.0" encoding="UTF-8" ?>
    <schema name="wpdata" version="1.1">
        <types>
            <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="integer" class="solr.IntField" omitNorms="true"/>
            <fieldType name="long" class="solr.LongField" omitNorms="true"/>
            <fieldType name="float" class="solr.FloatField" omitNorms="true"/>
            <fieldType name="double" class="solr.DoubleField" omitNorms="true"/>
            <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="date" class="solr.DateField" sortMissingLast="true" omitNorms="true"/>
            <fieldType name="random" class="solr.RandomSortField" indexed="true" />
    
            <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
                <analyzer>
                    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                </analyzer>
            </fieldType>
    
    		<fieldType name="text_lws" class="solr.TextField" positionIncrementGap="100">
                <analyzer>
                    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    				<filter class="solr.LowerCaseFilterFactory"/>
                </analyzer>
            </fieldType>
    
            <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
                <analyzer type="index">
                    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
                    <filter class="solr.LowerCaseFilterFactory"/>
    				<filter class="solr.EnglishPossessiveFilterFactory"/>
                    <filter class="solr.PorterStemFilterFactory"/>
                </analyzer>
                <analyzer type="query">
                    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                    <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>-->
                    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
                    <filter class="solr.LowerCaseFilterFactory"/>
    				<filter class="solr.EnglishPossessiveFilterFactory"/>
                    <filter class="solr.PorterStemFilterFactory"/>
                </analyzer>
            </fieldType>
    
            <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" >
                <analyzer>
                    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                    <!--<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>-->
                    <!--<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>-->
                    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
                    <filter class="solr.LowerCaseFilterFactory"/>
    				<filter class="solr.EnglishPossessiveFilterFactory"/>
                    <filter class="solr.PorterStemFilterFactory"/>
                </analyzer>
            </fieldType>
    
            <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
                <analyzer>
                    <tokenizer class="solr.StandardTokenizerFactory"/>
                    <filter class="solr.LowerCaseFilterFactory"/>
                    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
                </analyzer>
            </fieldType>
    
            <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
                <analyzer>
                    <tokenizer class="solr.KeywordTokenizerFactory"/>
                    <filter class="solr.LowerCaseFilterFactory" />
                    <filter class="solr.TrimFilterFactory" />
                    <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all"/>
                </analyzer>
            </fieldType>
    
            <fieldtype name="ignored" stored="false" indexed="false" class="solr.StrField" />
        </types>
    
        <fields>
    	    <field name="_version_" type="long" indexed="true" stored="true"/>
    
            <field name="id" type="string" indexed="true" stored="true" required="true" />
       <field name="PID" type="string" indexed="true" stored="true" required="true" />
    		<field name="blogid" type="string" indexed="true" stored="true"/>
    		<field name="blogdomain" type="string" indexed="true" stored="true"/>
    		<field name="blogpath" type="string" indexed="true" stored="true"/>
    		<field name="wp" type="string" indexed="true" stored="true"/>
    
    		<field name="permalink" type="string" indexed="true" stored="true"/>
            <field name="title" type="text_lws" indexed="true" stored="true"/>
    		<field name="content" type="text" indexed="true" stored="true"/>
    		<field name="numcomments" type="integer" indexed="true" stored="true"/>
    		<field name="comments" type="text" indexed="true" stored="true" multiValued="true"/>
    
            <field name="categories" type="string" indexed="true" stored="true" multiValued="true"/>
    		<field name="categoriessrch" type="text_lws" indexed="true" stored="false" multiValued="true"/>
    
            <field name="tags" type="string" indexed="true" stored="true" multiValued="true"/>
    		<field name="tagssrch" type="text_lws" indexed="true" stored="false" multiValued="true"/>
    
            <field name="author" type="string" indexed="true" stored="true"/>
    		<field name="type" type="string" indexed="true" stored="true"/>
    
    		<!-- Date fields used for sorting and searching -->
    		<field name="date" type="date" indexed="true" stored="false"/>
    		<field name="modified" type="date" indexed="true" stored="false"/>
    
    		<!-- Fields used to display the date -->
    		<field name="displaydate" type="string" indexed="false" stored="true"/>
    		<field name="displaymodified" type="string" indexed="false" stored="true"/>
    
    		<!-- For spell checking, did you mean? -->
    		<field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>
    
    		<!-- Autocomplete -->
    		<field name="autocomplete" type="textSpell" indexed="true" stored="true" multiValued="true"/>
    
            <!-- composite field -->
            <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
    
            <!-- dynamic fields -->
            <dynamicField name="*_str"  type="string"  indexed="true"  stored="true" multiValued="true"/>
            <dynamicField name="*_srch"  type="text_lws"  indexed="true"  stored="false" multiValued="true"/>
            <!-- dynamicField name="*_taxonomy" type="string" indexed="true" stored="true" multiValued="true"/ -->
    
            <dynamicField name="*_i"  type="sint"    indexed="true"  stored="true"/>
            <dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/>
            <dynamicField name="*_l"  type="slong"   indexed="true"  stored="true"/>
            <dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/>
            <dynamicField name="*_b"  type="boolean" indexed="true"  stored="true"/>
            <dynamicField name="*_f"  type="sfloat"  indexed="true"  stored="true"/>
            <dynamicField name="*_d"  type="sdouble" indexed="true"  stored="true"/>
            <dynamicField name="*_dt" type="date"    indexed="true"  stored="true"/>
            <dynamicField name="random*" type="random" />
         </fields>
    
         <uniqueKey>id</uniqueKey>
         <defaultSearchField>text</defaultSearchField>
         <solrQueryParser defaultOperator="OR"/>
    
         <copyField source="title" dest="text"/>
         <copyField source="tags" dest="text"/>
         <copyField source="categories" dest="text"/>
         <copyField source="content" dest="text"/>
         <copyField source="permalink" dest="text"/>
    
         <copyField source="title" dest="spell"/>
         <copyField source="tags" dest="spell"/>
         <copyField source="categories" dest="spell"/>
         <copyField source="content" dest="spell"/>
    
         <copyField source="title" dest="autocomplete"/>
         <copyField source="tags" dest="autocomplete"/>
         <copyField source="categories" dest="autocomplete"/>
         <copyField source="content" dest="autocomplete"/>
    
         <copyField source="tags" dest="tagssrch"/>
         <copyField source="categories" dest="categoriessrch"/>
    
    </schema>

    https://www.ads-software.com/plugins/wpsolr-search-engine/

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author WPSolr free

    (@wpsolr)

    Can you show me the first solrconfig.xml error ?

    It could be related to the Lucene version, positioned at the very top of solrconfig.xml.

    It seems you might have a Solr 4.0.
    In that case, you should consider upgrading to something more up to date

    Thread Starter Erwin van Brandwijk

    (@evanbrandwijk)

    I know about that error. It’s about luceneMatchVersion.. It has to be LUCENE_40 or something. But if I fix that, there is a next error.

    Okay let’s try it with my other Solr server;
    Solr version 4.10.3
    Lucene 4.10.3

    If I use this server I got the following error;

    – org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Error initializing QueryElevationComponent.

    Plugin Author WPSolr free

    (@wpsolr)

    You have to create an elevate.xml file in your Solr core directory.

    Thread Starter Erwin van Brandwijk

    (@evanbrandwijk)

    My Solr is working with the solrconfig.xml file from your plugin. But I removed the spellchecker.

    But I still can’t search on partial words. For instance.
    Page with title “Example page”
    Search for “xample”

    Nothing found. Or if I trie a word in the text.

    Plugin Author WPSolr free

    (@wpsolr)

    Can you please open a new ticket for your last issue ?

    Mixing problems in one ticket is never good.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Not working on local Solr installation’ is closed to new replies.