mysql - 如何向 solr 查询响应添加新参数

标签 mysql solr lucene

我正在尝试运行以下 URL

http://localhost:8983/solr/collection1/select?q=reqst00548008&fl=trendid,keywords,problem,general&sort=score+desc&debug=query&wt=json&indent=true&hl=true&hl.fl=keywords,problem,症状,一般&hl

我得到的响应如下

{
  "responseHeader":{
    "status":0,
    "QTime":1,
    "params":{
      "q":"reqst00548008",
      "debug":"query",
      "hl":["true",
        ""],
      "indent":"true",
      "fl":"trendid,keywords,problem,general",
      "sort":"score desc",
      "hl.fl":"keywords,problem,symptom,general",
      "wt":"json"}},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "general":"NullPointerException seen in logs",
        "keywords":"NPE, NullPointerException",
        "trendid":"2064"}]
  },
  "highlighting":{
    "2064":{}},
  "debug":{
    "rawquerystring":"reqst00548008",
    "querystring":"reqst00548008",
    "parsedquery":"text:reqst00548008",
    "parsedquery_toString":"text:reqst00548008",
    "QParser":"LuceneQParser"}
}

我也想在响应中包含我无法做到的问题。

到目前为止我尝试的是将其添加到 data-config.xml 中,如下所示

<dataConfig> 
    <dataSource type="JdbcDataSource"
   driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
   url="jdbc:sqlserver://127.0.0.1\SQLEXPRESS;databaseName=sustainingxxxx"
   user="max"
   password="xxxxxx"/>

    <document name="content">
        <entity name="id"
query="select id,createtime,lastmodified,modifiedby,title,keywords,general,symptom,diagnosis,resolution,problem FROM trends"
deltaImportQuery="select id,createtime,lastmodified,modifiedby,title,keywords,general,symptom,diagnosis,resolution,problem FROM trends WHERE id = ${dataimporter.delta.id}"
deltaQuery="select id FROM trends WHERE lastmodified > '${dataimporter.last_index_time}' or createtime > '${dataimporter.last_index_time}'">

            <field column="id" name="trendid" />
            <field column="lastmodified" name="lastmodified" />
            <field column="modifiedby" name="modifiedby" />
            <field column="title" name="title" />
            <field column="keywords" name="keywords" />
            <field column="general" name="general" />
            <field column="symptom" name="symptom" />
            <field column="diagnosis" name="diagnosis" />
            <field column="resolution" name="resolution" />
            <field column="problem" name="problem" />
        </entity>
    </document>
</dataConfig>

我添加了所有问题,但这没有帮助。我需要在其他地方提及吗?我错过了什么吗?

最佳答案

problem 字段在您的 schema.xml 文件中不存在,这就是您在查询结果中看不到它的原因。

<field name="trendid" type="string" indexed="true" stored="true" required="true"/>
<field name="lastmodified" type="date" indexed="true" stored="true"/>
<field name="modifiedby" type="string" indexed="true" stored="true" />
<field name="title" type="text_en" indexed="true" stored="true"/>
<field name="keywords" type="text_en" indexed="true" stored="true"/>
<field name="general" type="text_en" indexed="true" stored="true"/>
<field name="symptom" type="text_en" indexed="true" stored="true"/>
<field name="diagnosis" type="text_en" indexed="true" stored="true"/>
<field name="resolution" type="text_en" indexed="true" stored="true"/>

您必须在您的模式中添加该字段,如果您没有特定的文本分析需要,只需添加:

<field name="problem" type="string" indexed="true" stored="true" required="true"/>

因此您可以重新加载核心配置或重新启动您的 Solr 实例。

然后您已将数据重新加载到您的索引中。

关于mysql - 如何向 solr 查询响应添加新参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44018986/

相关文章:

php - mysqli insert - 但只有在不重复的情况下

mysql - 在 macos Catalina 上安装 MySQL 的多个实例

mysql : Get latest value and sum of values from previous hour

java - Lucene/Hibernate Search - 查询关联的集合?

mysql - 在spark中将数据保存到MySQL后DataFrame变空

apache - 如何更改 solr 中的日期格式 yyyy-mm-ddThh :mm:ssZ into "yyyy-mm-dd"?

solr - 如何从 Solr/Lucene 索引获取所有 token 的列表?

java - Solr读取超时(仅在生产环境中)

solr 将 java 源文件索引为文本

java - Elasticsearch 中的模式匹配?