为什么Solr索引我的文档?

时间:2012-04-22 20:24:17

标签: solr

这就是我在schema.xml中的内容:

<fields>
  <field name="id" type="string" indexed="true" stored="true" required="true" />
  <field name="about" type="string" indexed="true" stored="true" />
  <field name="music" type="string" indexed="true" stored="true" />
  <field name="movies" type="string" indexed="true" stored="true" />
  <field name="occupation" type="string" indexed="true" stored="true" />  
  <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
</fields>

<uniqueKey>id</uniqueKey>

这是我发布的文件:

<add>
    <doc>
        <field name="id">abc123</field>     
        <field name="about">I am somebody</field>
        <field name="music">pop</field>
        <field name="movies">titanic</field>
        <field name="occupation">web dev</field>
    </doc>
</add>

当我使用*:*在Solr Admin中搜索时,文档被推送到Solr就好了,它显示了我的文档:

<?xml version="1.0" ?>
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">1</int>
    <lst name="params">
      <str name="indent">on</str>
      <str name="start">0</str>
      <str name="q">*:*</str>
      <str name="version">2.2</str>
      <str name="rows">10</str>
    </lst>
  </lst>
  <result name="response" numFound="1" start="0">
    <doc>
      <str name="about">I am somebody</str>
      <str name="id">abc123</str>
      <str name="movies">titanic</str>
      <str name="music">pop</str>
      <str name="occupation">web dev</str>
    </doc>
  </result>
</response>

然而,当我使用文档中明确显示的关键字进行搜索时,例如“titanic”或“web”,没有结果显示:

<?xml version="1.0" ?>
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">1</int>
    <lst name="params">
      <str name="indent">on</str>
      <str name="start">0</str>
      <str name="q">titanic</str>
      <str name="version">2.2</str>
      <str name="rows">10</str>
    </lst>
  </lst>
  <result name="response" numFound="0" start="0"/>
</response>

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

看起来好像需要指定字段名称(q = movies:titanic)或在schema.xml中设置默认字段。

答案 1 :(得分:1)

如果您指定字段名称,我怀疑您的搜索会有效。如果您希望能够在不指定字段名称的情况下进行搜索,则需要在schema.xml中指定<defaultSearchField>