Я использую камень рубин SunSpot с Solr 1.4.1Solr (солнечное пятно) Запрос с дефисом и игнорируемыми словами
У меня есть проблема вокруг поиска с дефисом.
Когда я запускаю поиск «foo bar bla», ожидаемый результат возвращается.
Когда дефисс включен в поисковый запрос типа «foo - bar bla», результат не возвращается.
Я добавил дефисы в свой список прекрасных слов и за последние несколько дней изменил свой файл schema.xml разными способами, но безрезультатно.
Для тех, кто с воздействием солнечных пятен у меня есть минимальное совпадение слова устанавливается равным 3, который является таким же, как установка такой же мм конфигурации в файле solrconfig.xml, например: 3
Это, как соответствующие части мой файл schema.xml выглядит.
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="string" class="solr.StrField" tokenized="true" omitNorms="true" sortMissingLast="true">
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" />
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" side="front"/>
</analyzer>
</fieldType>
<!-- *** This fieldType is used by Sunspot! *** -->
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" />
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15" side="front"/>
</analyzer>
</fieldType>
Любая помощь или предложения были бы высоко оценены.
Спасибо,
Эй, Дэвид, у меня была эта точная мысль вчера вечером после публикации, спасибо за подтверждение моих подозрений, я обязательно буду отчитываться, если подойду, чтобы проверить это с огранкой или иначе. –