对于使用简单架构和索引的Apache Lucene Solr的任何查询,都没有返回任何结果

时间:2014-07-01 21:45:24

标签: apache solr lucene

我是SOLR的新手。我正在阅读Packt在SOLR上发表的一本书,并尝试让练习运行起来。我已经相当远了很多,但我还有很长的路要走。目前我已经推出了一款带有Digital Ocean(Ubuntu SRVR 14.04)的测试服务器,只是为了在这里练习:

http://patrickisgreat.me:8983/solr/#/

我创建了一个名为privatelounge的核心。我创建了一个简单的schema.xml,solrconfig.xml,并索引了一个简单的文档。我已经在这里阅读了其他几个主题,例如thisthis,它们似乎不适用于我的配置。

这是我的schema.xml:

<?xml version='1.0' ?>
<schema name='privatelounge' version='1.1' >
<types>
        <fieldtype name='text_en' class='solr.TextField'>
        <analyzer>
                <tokenizer class='solr.WhitespaceTokenizerFactory' />
                <filter class='solr.LowerCaseFilterFactory' />
        </analyzer>
        </fieldtype>
</types>
<fields>
  <dynamicField name='*' type='text_en' multiValued='true' indexed='true' stored='true' />
    <copyField source='*' dest='fulltext' />
    <field name='fullText' type='text_en' multiValued='true' />
  </fields>
  <defaultSearchField>fullText</defaultSearchField>
  <solrQueryParser defaultOperator='OR' />
</schema>

这是我的solrconfig.xml:

<config>
      <luceneMatchVersion>LUCENE_45</luceneMatchVersion>
      <directoryFactory name='DirectoryFactory' class='solr.MMapDirectoryFactory' />

      <requestHandler name='standard' class='solr.StandardRequestHandler' default='true' />
      <requestHandler name='/update' class='solr.UpdateRequestHandler' />

       <requestHandler name='/admin/' class='org.apache.solr.handler.admin.AdminHandlers' />

      <admin>
       <defaultQuery>*:*</defaultQuery>
      </admin>
</config>

这是我索引的唯一文件:

<add>
<doc>
<field name='title'>Dummy Test Document</field>
<field name='text'>Hello World</field>
</doc>
</add>

使用此命令:

sudo curl -X POST 'http://localhost:8983/solr/privatelounge/update?commit=true' -H 'Content-Type: text/xml' -d @docs.xml

因此,运行的查询会返回文档,但使用查询语言的任何变体运行fullText中任何术语的查询都会返回:

{
  "responseHeader":{
    "status":0,
    "QTime":4},
  "response":{"numFound":0,"start":0,"docs":[]
  }}
到目前为止,我感到很困惑。对于任何愿意提供帮助的人 - 我可以在我的测试服务器上为您创建一个shell帐户,并传真给你一个corndog,啤酒或拥抱。

非常感谢!

1 个答案:

答案 0 :(得分:1)

这对我来说很好用:

http://patrickisgreat.me:8983/solr/privatelounge/select?q=text%3A%22hello%22&wt=json&indent=true

我明白了:

{
  "responseHeader":{
    "status":0,
    "QTime":1},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "title":["Dummy Test Document"],
        "fulltext":["Dummy Test Document",
          "Hello World"],
        "text":["Hello World"]}]
  }}

确定您正确输入了查询?