Эта проблема, как это: Solr wildcard query with whitespace У меня есть подстановочные запрос, который выглядит примерно так:Solr подстановочные запрос с пробелами и синоним
q=location:los a*
Я хотел бы, чтобы соответствовать «Лос-Анджелес» и " лос алтос ". Запрос, как:
q=location:los\ a*
работает отлично, но если у меня есть синоним логики: (synonym.txt)
los,las
И использовать "Лос-л *", чтобы соответствовать «лас-лу «Кажется, не работает. Как я могу это сделать?
типа файла и файла конфигурации:
<fieldType name="ngram" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="0" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="0" catenateAll="0" splitOnNumerics="0" preserveOriginal="1"/> <filter class="solr.ASCIIFoldingFilterFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonym.txt" ignoreCase="true" expand="true"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="0" generateWordParts="0" generateNumberParts="0" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnNumerics="0" preserveOriginal="1"/> <filter class="solr.ASCIIFoldingFilterFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
<field name="location" type="ngram" indexed="true" stored="false"/>