Solr больше похож на этот (MLT), не возвращая результаты

StackOverflow https://stackoverflow.com/questions/9304464

Вопрос

В настоящее время я хочу реализовать эту функциональность, основанную на нескольких областях в моем индексе.

Моя текущая конфигурация заключается в следующем: Haystack | Pysolr | Соль

Для этой части я использую pysolr и передаю параметры функции more_like_this. Ответ находит документ, но не связанные с ними результаты. Почему это?

Вот URL, который я ударил:

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"/>

Любая помощь будет оценена!

Это было полезно?

Решение

Ваши текстовые поля должны иметь тип text, что обрабатывает их, чтобы сделать их доступен для поиска. Анкет А string Поля хранятся и запрашиваются такими, какие они есть, поэтому Они не доступны для поиска, делая их бесполезными для MLT.

Ссылаться Копировать поля Если вы когда -нибудь захотите сохранить те же данные, что и оба text а также string (например, ограждение).


Я вижу, вы также намерены найти цифры, наиболее близкие к нашему запросу. MLT не подходит для этого. Вы хотите составить Функциональный запрос для этого. Solr: больше похоже на это на полях число

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top