2013-07-08 2 views
0

Solr 4.2.1Список полей «существует()» неправильного

Это не кажется, что бы я ни стараюсь, я не могу получить правильные результаты из функции существует(). Я использую его, чтобы проверить, существует ли в схеме поле типа «text_general». Он работает несколько, однако ~ 10% времени это неправильно.

Вот простой код, который я использую в FL-части запроса для его проверки.

fl=list:if(exists(title),1,0),title 

Вот пример записи, которую я получаю неправильно.

<str name="title">Tonight Tonight</str> #Obviously exists 
<long name="list">0</long></doc> #Still returns 0 

Это мое определение схемы, может быть, у text_general возникли проблемы с этим? Я не могу найти ничего в документах об этом.

<field name="title" type="text_general" indexed="true" stored="true" required="false" multiValued="false" /> 

Благодаря

ответ

0

Если вы хотите проверить, если поле существует или не проверять Negative queries.

-field:[* TO *] finds all documents without a value for field 

Вы также можете попробовать -field:["" TO *]

+0

Проблема с этим решением является то, что он не будет работать в булевом функциональном запросе. Значение Я не могу использовать это как проверку в выражении if. – user2558898

+0

Вы хотите вернуть значение? – Jayendra

+0

Да, я просто использовал 1 и 0, чтобы указать на его нарушение. Полный запрос будет больше похож на 'fl = list: if (exists (title), title, somethingElse), title' Редактировать: Я действительно работал над этой проблемой, имея запрос на импорт MySQL для проверки для меня и назначить соответствующее значение. Мне все еще интересно, почему это не работает. – user2558898

Смежные вопросы