У меня есть тип поля, определенный в my schema.xml, например:solr дает тот же результат для разных значений
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="0" splitOnCaseChange="0" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
</analyzer>
</fieldType>
Настоящее мое поле;
<dynamicField name="*_text" type="text" indexed="true" stored="true" />
Когда я запрашиваю значение «am26» в плате запроса solr admin, у меня есть следующие результаты в моем документе. (Есть существует много полей, однако, я просто выбрать code_text и оценка полей показать)
"response": {
"numFound": 6,
"start": 0,
"maxScore": 1184.7297,
"docs": [
{
"code_text": "AM232",
"score": 1184.7297
},
{
"code_text": "AM238",
"score": 1184.7297
},
{
"code_text": "AM266",
"score": 1184.7297
},
{
"code_text": "AM268",
"score": 1184.7297
},
{
"code_text": "AM269",
"score": 1184.7297
},
{
"code_text": "AM273",
"score": 1184.7297
},
]
Как прийти счет из AM232 и AM266 может быть такой же? Кроме того, как мы можем видеть такие значения, как AM232 и AM273 среди результатов? Насколько я знаю, когда мы запрашиваем «am26», solr сначала преобразует эту строку в нижний регистр (согласно определению в schema.xml), а WordDelimiterFilterFactory разделяет строку как am, 26. Поэтому я могу понять результаты, которые включают 26 и AM, но я не знаю, почему я вижу «AM232» и «AM273» в своем документе. Плюс у них есть точная оценка.
Спасибо за ваш ответ. Хотя документ AM266 не является точным совпадением для поискового термина AM26, он имеет более высокий рейтинг. Соответствуют 4 символа. Главный момент, который я пытаюсь понять, - это то, как AM232 и AM266 имеют тот же результат. Я ожидал бы, что AM232 сравняется с AM266. –
Как я уже сказал, термин «26» соответствует * никому * документов. Термин «26» соответствует термину «266» точно так же, как он соответствует «steve», то есть совсем не соответствует. – femtoRgon
Для вашего: '4 символа совпадают' -> это неправильно. Будет соответствовать только 'AM'. Вы можете использовать инструмент анализа на странице solr admin, чтобы заметить это. – alexf