Solr查询-HTTP错误404未定义字段文本

Solr查询-HTTP错误404未定义字段文本,solr,lucene,Solr,Lucene,我已经在我的Ubuntu机器上运行了一个Solr实例,它使用Solr下载附带的默认Jetty服务器。每当我开始使用Solr时 java-jarstart.jar 服务器启动正常,但始终会引发异常: INFO: SolrDispatchFilter.init() done Apr 12, 2012 2:01:56 PM org.apache.solr.common.SolrException log SEVERE: org.apache.solr.common.SolrException: und

我已经在我的Ubuntu机器上运行了一个Solr实例,它使用Solr下载附带的默认Jetty服务器。每当我开始使用Solr时

java-jarstart.jar

服务器启动正常,但始终会引发异常:

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
正如我所说,服务器仍将启动,我可以看到Solr管理界面。我定义了我的模式如下

<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>
它正确地返回了我先前在示例中提交的所有数据

然而,当我尝试使用文本进行查询时,我收到一个HTTP错误404

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

默认的solr配置定义了一些请求处理程序,其默认值与solr tarball中包含的默认模式相匹配

检查solrconfig中定义的请求处理程序,您可能会发现
和其他配置值包括架构中未定义的某些字段


另外,请检查schema.xml,确保默认搜索字段未设置为如下所示的text
text

我有相同的问题,有时出现在404答案上,如上所述,或者在jetty堆栈跟踪中出现异常:

严重:org.apache.solr.common.SolrException:未定义的字段文本

我检查了设置为“内容”的defaultSearchField(对我来说似乎没问题)

编辑:我的schema.xml中有以下类型text的定义(请参阅其中的“无问题”)


我也有同样的问题。 如果
solrconfig.xml
文件中没有
,请查找
/select
处理程序

在这里面你会发现像这样的东西

<str name="df">text</str>
文本
这就是罪魁祸首
df
表示默认字段,默认情况下,它被设置为一个名为
text
的字段,这是许多人可能没有的


删除它并替换为默认搜索字段。

文本字段由其他字段的副本组成,如default schema.xml(插入新文档时)中指定的


因此,当我们在solrconfig.xml中有df“text”时,我们在不指定solr admin页面上的字段(如:video)的情况下进行搜索。它将在文本字段(由其他字段的副本组成)中查找。

情况可能并非总是如此,但当我遇到类似问题时,结果证明使用restart命令重新启动Solr服务器是不够的。使用stop命令显式地停止服务器,然后使用start命令启动服务器,实际上做到了这一点。我不需要编辑任何文件


另外,我的问题是Solr core无法访问only/clustering

问题是defaultSearchField——它设置为“text”,我把它与文本类型混淆了。我将defaultSearchField设置为使用“translation”(或任何字段名),它工作得非常好。在我的例子中,问题是
text
而不是
solrconfig.xml
中的
content
schema.xml
中的content”设置为
defaultSearchField
)我已经搜索这个答案好几天了,非常感谢,事实上我不得不投票支持这个令人讨厌的答案,尽管我想知道文档中提到了什么。为了完成我的上述文章,我在我的模式中有一个“文本”的fieldTupe定义,就是:看第一个答案。您可能需要编辑您的solrconfig.xml。@在我的schema.xml中,我这样添加了Arindam,以便搜索所有字段(希望正确)。我按照您的注释,将solrconfig.xml更改为所有字段。但我的结果显示空的原因是什么?????请帮帮我
   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)
<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>
<str name="df">text</str>