2014-02-20 1 views
0

У меня есть документ, который выглядит следующим образом:Solr запросов над нескольких полями синтаксисом

<date name="added">2014-02-17T17:17:01Z</date> 
<arr name="authorids"><str>57373</str></arr> 
<str name="body">German chancellor Angela Merkel has proposed some stuff, well done her.</str> 
<str name="contentid">9</str> 
<arr name="countryids"><str>37,38,119</str><str/><str/></arr> 
<str name="excerpt">German chancellor Angela Merkel has proposed setting upsome stuff that will do really well.</str> 
<str name="key">146</str> 
<str name="layoutid">1</str> 
<date name="modified">2014-02-17T17:17:05Z</date> 
<date name="published">2014-02-17T17:17:00Z</date> 
<str name="shortcut">1</str> 
<str name="sitecode">GIR</str> 
<str name="statusid">5</str> 
<str name="title">Merkel backs separate EU internet infrastructure</str> 
<str name="uid">146</str> 
<str name="url">http://127.0.0.1:84/something/123/edit/</str> 

Когда я прохожу через пары запросов к Solr из:

q=statusid:5 AND (title:"Merkel" OR body:"Merkel" OR excerpt:"Merkel") AND sitecode:GIR 

который должен соответствовать вышеуказанному документу, Я не получаю никаких результатов, и я понятия не имею, почему. Документация solr, похоже, достаточно легка в том, как правильно запросить solr.

моя схема для документа выглядит следующим образом:

<fields> 
    <field name="key"  type="string" indexed="false" stored="true" required="true" /> 
    <field name="url"  type="string" indexed="false" stored="true" required="false" /> 
    <field name="sitecode" type="string" indexed="true" stored="true" required="true" /> 
    <field name="authorids" type="string" indexed="true" stored="true" required="false" multiValued="true" /> 
    <field name="tagids"  type="string" indexed="true" stored="true" required="false" multiValued="true" /> 
    <field name="countryids" type="string" indexed="true" stored="true" required="false" multiValued="true" /> 
    <field name="modified" type="date" indexed="true" stored="true" required="true" /> 
    <field name="published" type="date" indexed="true" stored="true" required="true" /> 
    <field name="added"  type="date" indexed="true" stored="true" required="true" /> 
    <field name="title"  type="text" indexed="true" stored="true" required="true" /> 
    <field name="excerpt" type="text" indexed="true" stored="true" required="true" /> 
    <field name="body"  type="text" indexed="true" stored="true" required="true" /> 
    <field name="layoutid" type="string" indexed="false" stored="true" required="true" /> 
    <field name="shortcut" type="string" indexed="false" stored="true" required="true" /> 
    <field name="statusid" type="string" indexed="false" stored="true" required="true" /> 
    <field name="contentid" type="string" indexed="false" stored="true" required="true" /> 
    <field name="uid"  type="string" indexed="true" stored="true" required="true" /> 
</fields> 
+0

ahh, так что я думаю, это потому, что я не проиндексировал поле 'statusid' – Jarede

ответ

0

YAA. Это связано с полем statusid. Для поля, если indexed="false", вы не можете запросить его. Просто удалите элемент statusid из запроса, ваш запрос должен работать.

q=(title:"Merkel" OR body:"Merkel" OR excerpt:"Merkel") AND sitecode:GIR 
Смежные вопросы