2016-04-19 134 views
0

我正在学习solr(5.5.0)并以独立模式运行。Solr查询不显示所有字段

这里是Solr的数据-config.xml中:

<dataConfig> 
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1/DBN" user="root" password="root"/> 
    <document> 
     <entity name="planexample" query="select * from plan where userid=60 limit 3"> 
      <field column="planid" name="id" /> 
      <field column="userid" name="userid" /> 
      <field column="planname" name="planname" /> 
      <field column="del" name="del" /> 
     </entity> 
    </document> 
</dataConfig> 

我字段添加到相应的管理型模式:

<field name="userid" type="int" indexed="true" stored="true" required="true" multiValued="true"/> 
<field name="planname" type="string" indexed="true" stored="true" required="true" multiValued="true"/> 
<field name="del" type="int" indexed="true" stored="true" required="true" multiValued="true"/> 
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

但是,当我做的Solr的网页查询,例如,ip:8983/solr/corename/select?q=del%3A1&wt=json&indent=trueip:8983/solr/corename/select?q=userid%3A60&wt=json&indent=true,结果只显示id,除了userid,planname,del,如何使这些字段在结果中可见?那么score字段在结果中意味着什么?结果

一个例子:

{ 
    "responseHeader": { 
     "status": 0, 
     "QTime": 1, 
     "params": { 
      "indent": "true", 
      "q": "del:1", 
      "_": "1461050814466", 
      "wt": "json" 
     } 
    }, 
    "response": { 
     "numFound": 10, 
     "start": 0, 
     "maxScore": 0.90468985, 
     "docs": [ 
      { 
       "id": "985963", 
       "score": 0.90468985 
      }, 
      { 
       "id": "1033572", 
       "score": 0.90468985 
      }, 
      { 
       "id": "1763216", 
       "score": 0.90468985 
      } 
     ] 
    } 
} 

回答

1

您需要提供一个fl参数,让所有存储领域, 做&fl=*,或逗号分隔的字段列表中选择所需例如即 &fl=id,userid,planname,del

+0

谢谢!但为什么这些字段看起来像是数组? {“planname”:[“MM”],“userid”:[60],“id”:“985963”,“del”:[1]} – zhengyu

+1

因为您已经在schema.multivalued字段中将它们提及为多值存储多个值。 – DhruvPathak