Фасетируя с Solr с помощью “строковых” полей, “текстовых” полей и полей “копии”

У меня есть проблема с Solr и Faceting и задающийся вопросом, знает ли кто-либо о фиксации. У меня есть работа вокруг для него в минуту, однако я действительно хочу разработать, почему мой запрос не работает.

Вот моя Схема, упрощенная, чтобы помочь следовать:


    
    
    
    
    




Поскольку Вы видите, что у меня есть нечувствительное к регистру поле, названное recordtype, и он копируется в чувствительное к регистру поле frecordtype, который не маркирует текст. Это вызвано тем, что solr возвращает индексируемое значение, а не хранимую сумму в результатах фасетирования.

Когда я пробую следующий запрос:

http://localhost:8080
/solr
/select
?version=2.2
&facet.field=%7b!ex%3dfrecordtype%7dfrecordtype
&facet=on
&fq=%7b!tag%3dfrecordtype%7dfrecordtype%3aLarge%20Record
&f1=*%2cscore
&rows=20
&start=0
&qt=standard
&q=text%3a%25

Я не получаю результатов, однако facteting все еще показывает, что существует 1 запись.

 
 
   
 
 
  1 
  12 
  1 
  
  
   
  

Однако, если я изменяю более пригодный запрос (строка 7 только), чтобы быть на "recordtype" insted frecordtype:

http://localhost:8080
/solr
/select
?version=2.2
&facet.field=%7b!ex%3dfrecordtype%7dfrecordtype
&facet=on
&fq=%7b!tag%3dfrecordtype%7drecordtype%3aLarge%20Record
&f1=*%2cscore
&rows=20
&start=0
&qt=standard
&q=text%3a%25

Я получаю 1 результат назад, что я хочу.

 
 
   
 
 
  1 
  12 
  1 
  
  
   
  

Таким образом, мой вопрос, там что-то, что я должен сделать, чтобы заставить первую версию запроса возвращать результаты, которые я хочу? Возможно, это относится к чему-то Кодирование URL или что-то? Любые подсказки от некоторого solr гуру или иначе были бы очень благодарны.

Примечание: Это не необходимо вопрос о фасетировании, поскольку фасетирование на самом деле работает. Это - больше вопрос о запросе, в котором я не могу выполнить запрос на "строковом" поле, даже при том, что случай и интервал являются точно тем же как индексируемой версией.

Править: Для получения дополнительной информации о фасетировании Вас может проверить их сообщение в блоге на него:

Спасибо

Dave

8
задан CraftyFella 31 January 2010 в 21:21
поделиться

1 ответ

Вам нужны кавычки вокруг значений

Например

frecordtype: "Large Record"

works

frecordtype:Large Record

Это будет искать Large во frecordtype, что ничего не вернет... затем Record через поле по умолчанию в solr.

.
10
ответ дан 5 December 2019 в 17:38
поделиться