1

My More Like 此查询不返回0 以外的任何起始值的结果。

我的带有响应的查询 URL 如下:

http://IP_ADDRESS:8983/solr/CORE_NAME/select?indent=on&q=one:ABC&mlt=true&mlt.fl=one,two,three&&rows=100&start=0&wt=json

以上工作正常。

http://IP_ADDRESS:8983/solr/CORE_NAME/select?indent=on&q=one:ABC&mlt=true&mlt.fl=one,two,three&&rows=100&start=1&wt=json

上面的查询抛出以下结果:

{
  "responseHeader":{
    "status":0,
    "QTime":1,
    "params":{
      "q":"one:ABC",
      "mlt":"true",
      "indent":"on",
      "mlt.fl":"one, two, three",
      "start":"1",
      "rows":"100",
      "wt":"json"}},
  "response":{"numFound":1,"start":1,"docs":[]
  },
  "moreLikeThis":{}}

我正在使用 solr 6.3,我使用的 MLT 架构如下:

    <requestHandler name="mlt_tracks" class="solr.MoreLikeThisHandler">

    <lst name="defaults">

    <str name="mlt.fl">one, two, three </str>

    <str name="mlt.mintf">2</str>

    <str name="rows">10</str>

    <str name="mlt.mindf">2</str>

    <str name="mlt.boost">true</str>

    </lst>

    </requestHandler>
4

1 回答 1

1

在您的处理程序中定义 mlt 默认值/select

<str name="mlt.fl">one, two, three </str>

    <str name="mlt.mintf">2</str>

    <str name="rows">10</str>

    <str name="mlt.mindf">2</str>

    <str name="mlt.boost">true</str>

将上面复制到 /select 处理程序定义中,粘贴到默认部分。

<lst name="defaults"> paste here </lst> 

或者

/用like更新请求处理程序名称name="/mlt_tracks"

<requestHandler name="/mlt_tracks" class="solr.MoreLikeThisHandler">

并使用/mlt_tracks而不是 /select 来查询

http://IP_ADDRESS:8983/solr/CORE_NAME/mlt_tracks?indent=on&q=one:ABC&mlt=true&mlt.fl=one,two,three&&rows=100&start=1&wt=json
于 2017-01-11T07:36:50.213 回答