2015-07-30 3 views
0

Solr не возвращает результаты, пока не префикс: имя поля, например Я ищу Ajay, мне нужно указать имя префикса: Ajay, чтобы получить результаты. Я пробовал тег copy.But он, кажется, не возвращает результаты. Можете ли вы рассказать мне, что я могу изменить, кроме изменения ниже.Solr Field не возвращает результаты

<copyField source="name" dest="text"/> 
<copyField source="last_name" dest="text"/> 

ответ

2

Старый способ, который был настроен, был с <defaultSearchField> в schema.xml. Это указывает на поиск поля по умолчанию, если в запрос не добавлено другое поле.

Возможно, вы захотите либо использовать параметр df в запросе (или, как говорит другой ответ, добавить его как значение по умолчанию), либо если вы используете обработчик (e) dismax (который вы, вероятно,), , используйте параметр qf, чтобы указать поля для запроса и веса между различными полями.

q=Ajay&qf=text&defType=edismax 

.. должен делать то, что вы хотите.

1

Если вы посмотрите на файл solrconfig.xml, вы увидите, что /выберитеrequestHandler сконфигурировано с полем поиска по умолчанию, как:

<lst name="defaults"> 
    <str name="df">aField</str> 
</lst> 

Здесь вы можете поместить поле, которое вы хотят, как, например:

<lst name="defaults"> 
    <str name="df">name</str> 
</lst> 

Вы можете увидеть другую тему о this subject и Solr Documentation.

Для построения возможно поиск поля, в вашем schema.xml, вы можете создать новое поле:

<field name="searchable_field" type="text_general" indexed="true" stored="true" multiValued="true" /> 

После этого, вы можете скопировать поля, которые вы хотите в вашем новом поле:

<copyField source="name" dest="searchable_field"/> 
<copyField source="last_name" dest="searchable_field"/> 
<copyField source="birthday" dest="searchable_field"/> 
<copyField source="location" dest="searchable_field"/> 

И чтобы закончить, вы просто должны поставить это новое поле в solrconfig.xml:

<lst name="defaults"> 
    <str name="df">searchable_field</str> 
</lst> 
+0

Не могли бы вы рассказать мне, где разместить фрагмент в файле solrconfig.xml? –

+0

В вашем ** requestHandler ** называется '/ select'! – alexf

+0

Не работает для меня. –