Я пытаюсь настроить solr для индексации базы данных oracle. Я включил ведущий поиск по шаблону и различные другие фильтры как таковые в моем schema.xml
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Я проиндексировал все доступные для поиска столбцы в базе данных и использую те же имена, что и имена столбцов для полей solr, и, следовательно, мой запрос на выборку в db-data-config.xml - это просто элемент select * from view;
Мы получаем разные результаты от запросов solr и базы данных
например, SQL-запрос, как показано ниже, возвращает 1307 записей
select count(*) from VIEW
where (COLUMN1 = 'Value0' and COLUMN2='Value1')
OR COLUMN3 in ('Value2','Value3','Value4')
AND COLUMN4='Value5'
и запрос solr, как показано ниже, возвращает только 7
(COLUMN1:(Value0) AND COLUMN2:(Value1))
OR (COLUMN3:(Value2 OR Value3 OR Value4))
AND (COLUMN4:(Value5))
Мы работаем только с 1 представлением, которое имеет все необходимые данные. Конфигурации solr индексируют все столбцы в представлении, и я бы подумал, что результаты будут аналогичными. Может ли кто-нибудь любезно объяснить несоответствие?
РЕДАКТИРОВАТЬ
Добавление значений в соответствии с запросом: solr query
COUNTRY_NAME:(United States) AND ELEMENT_CODE:(CT)) OR (UNIT_STATUS:(Operating OR Order OR Shipped)) AND (FRAME_GR_DISPLAY:(06A))
запрос к базе данных
select * from VIEW where
(COUNTRY_NAME = 'United States' AND ELEMENT_CODE='CT')
OR UNIT_STATUS in ('Operating','Order','Shipped')
AND FRAME_GR_DISPLAY='06A'