【问题标题】:Solr More Like This (MLT) not returning resultsSolr More Like This (MLT) 不返回结果
【发布时间】:2012-03-07 10:46:14
【问题描述】:

我目前正在寻求基于索引中的多个字段来实现更多类似的功能。

我目前的配置如下: 干草堆 | PySolr |太阳能

对于这篇文章,我使用 PySolr 并将参数传递给 more_like_this 函数。响应找到了文档,但没有找到任何相关的结果。这是为什么呢?

这是我点击的网址:

http://localhost:8080/solr/mlt?q=django_id:12123412&mlt.fl=industry_ids,loc_state,amount,sector_id&mlt.interestingTerms=details

这是我从 Solr 得到的回复:

<response>
<object type="{XXXXXX-0F1D-4F28-AAA2-XXXXXXXXXXX}" cotype="cs" id="cosymantecbfw" style="width: 0px; height: 0px; display: block;"/>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">24</int>
</lst>
<result name="match" numFound="1" start="0">
    <doc>...</doc>
</result>
<result name="response" numFound="0" start="0"/>
<lst name="interestingTerms"/>
</response>

solrconfig.xml

<!-- More Like This -->
<requestHandler name="/mlt" class="solr.MoreLikeThisHandler">
</requestHandler>

schema.xml

<field name="award_amount" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true" />
<field name="estatus" type="slong" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="loc_state" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="orgtype_id" type="string" indexed="true" stored="true" multiValued="false" termVectors="true" />
<field name="sector_id" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="industry_ids" type="string" indexed="true" stored="true" multiValued="true" termVectors="true" />
<field name="award_amount_exact" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true" />
<field name="sector_id_exact" type="string" indexed="true" stored="true" multiValued="false" termVectors="true"/>
<field name="amount_exact" type="sfloat" indexed="true" stored="true" multiValued="false" termVectors="true"/>

任何帮助将不胜感激!

【问题讨论】:

    标签: solr django-haystack morelikethis pysolr


    【解决方案1】:

    您的文本字段必须具有 text 类型,它会处理它们以使其可搜索string 字段按原样存储和查询,因此不可搜索,因此对 MLT 毫无用处。

    如果您想要存储与textstring 相同的数据(例如,分面),请参考复制字段


    我看到您还打算找到最接近我们查询的数字。 MLT 不适合这种情况。您想为此编写一个函数查询SolR : More Like This on number fields

    【讨论】:

    • 我意识到我的 mlt.mintf 和 mlt.mindf 设置过高,导致我无法收到结果。
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2017-05-25
    相关资源
    最近更新 更多