If I have an entry with the keywords Chris Muench, I want to be able to match Mue or Chr. How can I do this with a solr request. I am currently doing the following:
$results = $solr->search('"'.Apache_Solr_Service::escape($_GET['textsearch']).'"~100', 0, 100, array('fq' => 'type:datacollection'));
He doesn't match Mue or Chr, but he matches Muench
Scheme:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="rocdocs" version="1.4">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0"/>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="type" type="string" indexed="true" stored="true" required="true" />
<field name="mongo_id" type="string" indexed="true" stored="true" required="true" />
<field name="nid" type="int" indexed="true" stored="true" required="true" />
<field name="keywords" type="text_general" indexed="true" stored="false" />
</fields>
<uniqueKey>mongo_id</uniqueKey>
<defaultSearchField>keywords</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
</schema>
source
share