Solr Query - ошибка HTTP 404 неопределенный текст поля

У меня запущен экземпляр Solr на моей машине с Ubuntu, использующий сервер Jetty по умолчанию, с которым загружается Solr. Всякий раз, когда я начинаю использовать Solr

java -jar start.jar

Сервер запускается нормально, но всегда выдается исключение:

<code>INFO: SolrDispatchFilter.init() done
Apr 12, 2012 2:01:56 PM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: undefined field text
</code>

Как я уже сказал, сервер все равно будет запущен, и я вижу интерфейс администратора Solr. Я определил мою схему следующим образом.

<code><fields>
    <field name="id" type="string" indexed="true" stored="true" />
    <field name="phraseID" type="int" indexed="true" stored="true" />
    <field name="translation" type="string" indexed="true" stored="true" />
</fields>
<uniqueKey>id</uniqueKey>
</code>

Я также смог выполнить обновление JSON - я отправил образец массива данных, который был принят. До этого момента все нормально.

Когда я пытаюсь выполнить запрос:

<code>http://localhost:8983/solr/select/?q=*:*&version=2.2&start=0&rows=10&indent=on
</code>

Он правильно возвращает все данные, которые я представил в моем образце ранее.

Однако в тот момент, когда я пытаюсь выполнить запрос с использованием текста, я получаю сообщение об ошибке HTTP 404.

<code>http://localhost:8983/solr/select/?q=fruit&version=2.2&start=0&rows=10&indent=on

--- returns ---

HTTP ERROR 400

Problem accessing /solr/select/. Reason:

    undefined field text
Powered by Jetty://
</code>

Ответы на вопрос(5)

как указано в файле schema.xml по умолчанию (при вставке нового документа).

Итак, когда у нас есть df & quot; текст & quot; в файле solrconfig.xml, и мы выполняем поиск без указания поля на странице администрирования solr, например: видео. Он будет найден в текстовом поле (которое состоит из копий других полей).

но когда у меня возникла похожая проблема, оказалось, что перезапуск сервера Solr с помощьюrestart команда не достаточна. Явно останавливая сервер сstop команда, а затем запустить его с помощьюstart Команда на самом деле сделала свое дело. Мне не нужно редактировать любой файл.

Постскриптум Моя проблема была в том, что only / clustering не был доступен для моего ядра Solr.

Решение Вопроса

ов со значениями по умолчанию, которые соответствуют схеме по умолчанию, включенной в tar-архив solr.

Проверьте обработчики запросов, определенные в solrconfig, и вы можете обнаружить, что <str name="qf"> и другие значения конфигурации включают в себя некоторые поля, которые вы не определили в схеме.

Кроме того, проверьте свой schema.xml, чтобы в поле поиска по умолчанию не было установлено значениеtext как это:<defaultSearchField>text</defaultSearchField>

 Jarrod Nettles12 апр. 2012 г., 21:40
Проблема заключалась в defaultSearchField - для него было установлено значение & quot; text & quot; который я перепутал с типом текста. Я установил defaultSearchField для использования & quot; translation & quot; (или как там ваше поле), и это сработало отлично.
 15 янв. 2015 г., 01:33
Я искал этот ответ в течение нескольких дней, большое спасибо, мне действительно пришлось проголосовать за этот замечательный ответ, хотя мне интересно, где это упоминалось в документах.
 17 июн. 2013 г., 22:32
В моем случае проблема была<str name="qf">text</str> вместо<str name="qf">content</str> вsolrconfig.xml («контент» установлен какdefaultSearchField вschema.xml)

<defaultSearchField> вsolrconfig.xml файл, ищите/select обработчик.

В этом вы найдете что-то вроде этого

<str name="df">text</str>

Это виновник.df означает поле по умолчанию, и оно, по умолчанию, и, как ни странно, довольно глупо, установлено в поле с именемtext что многие могут не иметь.

Удалите его и замените тем, что будет вашим полем поиска по умолчанию.

 07 мая 2013 г., 07:26
@Arindam в моем schema.xml я добавил вот так: & lt; field name = & quot; all_fields & quot; тип = & Quot; текст & Quot; индексированный = & Quot; истинно & Quot; хранятся = & Quot; ложно & Quot; / & GT; & lt; copyField source = & quot; title & quot; = & Dest Quot; all_fields & Quot; / & GT; чтобы я мог искать по всем полям (НАДЕЖДА ЕЕ ПРАВИЛЬНО), я последовал вашему комментарию и изменил solrconfig.xml как & lt; str name = & quot; df & quot; & gt; all_fields & lt; / str & gt ;. Но мой результат показывает пустой, что было бы причиной ????? Помогите мне, пожалуйста
 17 дек. 2012 г., 16:22
@NicYoung Добро пожаловать
 14 дек. 2012 г., 03:09
Ваше решение - единственное, которое сработало для меня. Спасибо!

которая иногда появляется в ответе 404, как описано выше, или в качестве исключения в трассировке стека молей:

SEVERE: org.apache.solr.common.SolrException: undefined field text

   at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330)
   at org.apache.solr.schema.IndexSchema.getFieldType(IndexSchema.java:1282)
   at org.apache.solr.search.SolrQueryParser.getWildcardQuery(SolrQueryParser.java:234)
   at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1414)

Я проверил defaultSearchField, для которого установлено значение & quot; content & quot; (что для меня нормально)

Изменить: у меня есть в моем schema.xml следующее определение типа текста (не вижу проблем в нем)

<fieldType name="text" class="solr.TextField"
    positionIncrementGap="100">
    <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.StopFilterFactory"
            ignoreCase="true" words="stopwords.txt"/>
        <filter class="solr.WordDelimiterFilterFactory"
            generateWordParts="1" generateNumberParts="1"
            catenateWords="1" catenateNumbers="1" catenateAll="0"
            splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPorterFilterFactory"
            protected="protwords.txt"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
</fieldType>
 18 апр. 2012 г., 18:32
Чтобы завершить мой пост выше, у меня есть определение fieldTupe & quot; text & quot; в моей схеме, которая:
 14 июн. 2012 г., 16:33
Посмотрите на первый ответ. Вам, вероятно, нужно отредактировать ваш solrconfig.xml.

Ваш ответ на вопрос