【问题标题】:Solr query doesn't show all the fieldsSolr 查询不显示所有字段
【发布时间】:2016-04-19 15:51:19
【问题描述】:

我正在学习 solr (5.5.0) 并以独立模式运行。

这里是 solr-data-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&amp;wt=json&amp;indent=trueip:8983/solr/corename/select?q=userid%3A60&amp;wt=json&amp;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
            }
        ]
    }
}

【问题讨论】:

    标签: mysql solr


    【解决方案1】:

    您需要提供一个fl 参数,以获取所有存储的字段, 做&amp;fl=*,或者你想要的字段的逗号分隔列表,即 以&amp;fl=id,userid,planname,del 为例。

    【讨论】:

    • 谢谢!但是为什么这些字段看起来像是数组呢? {"planname": ["MM"], "userid": [60],"id": "985963","del": [1]}
    • 因为您在架构中提到它们是多值的。多值字段可以存储多个值。
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    相关资源
    最近更新 更多