Я работаю над добавлением аспектов к моим запросам Solr и получаю странные результаты.
Допустим, у меня есть список производителей, которых я хочу проанализировать. Этот список будет включать:
Администрация порта
Carhartt Одежда
Dickies Униформа
Мои аспекты для этого возвращаются как:
<int name="port">157</int>
<int name="authority">156</int>
<int name="clothing">156</int>
<int name="carhartt">105</int>
<int name="uniforms">67</int>
<int name="dickies">58</int>
Есть ли способ заставить фасеты использовать полное значение, а не разбивать каждое слово? Я определил производителя в моем файле schema.xml как:
<field name="manufacturer" type="text_general" indexed="true" stored="true" multiValued="false"/>
У меня в основном есть файл schema.xml по умолчанию, который находится в каталоге примеров, когда вы загружаете Solr. Единственное, что я изменил по сравнению с примером по умолчанию, - это добавление полей.
Один из простых способов сделать это - скопировать данные в определенное поле фасета. Обычно вы не хотите токенизации или каких-либо других изменений в поле фасета.
Например, у вас solr schema.xml вы можете сделать
<copyField source="manufacturer" dest="manufacturerFacet"/>
Это автоматически скопирует данные, которые вы пытаетесь сохранить в поле производителя, в ManufacturerFacet. Таким образом, вы можете установить поле ManufacturerFacet следующим образом, используя строку в качестве базового стандартного типа без токенизации.
<field name="manufacturerFacet" type="string" indexed="true" stored="false" multiValued="true"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>