如何阅读solr索引?

时间:2011-03-17 20:54:20

标签: php solr

我根据此文档http://wiki.apache.org/solr/DIHQuickStart

将我的db表直接索引到solr中

完全导入有效。但是,当我查询这样的数据时,我得到了 没有结果

   $solr = new Apache_Solr_Service('localhost', '8983', 'solr/');

   $offset = 0;
   $limit = 1000;

   $queries = array(
      'details:Server'
   );

   $response = $solr->search( $query, $offset, $limit );

Solr本身正在运行。我尝试查询行“详细信息”但它现在给我结果。

知道我做错了什么吗?

Schema.xml:http://pastebin.com/2kx7MkDX

data-config.xml:http://pastebin.com/vtDZzuqC

solrconfig.xml:http://pastebin.com/V6nzvMa5

全部来自/ example / solr / conf /

4 个答案:

答案 0 :(得分:4)

这是你的答案:

您的“详细信息”字段定义为“字符串”。在Solr中,它意味着它被索引为单个文字标记。 'string'类型通常用于标识符。

因此,您的查询“详细信息:服务器”匹配“详细信息”完全等于“服务器”的文档,以及 “详细信息”包含“服务器”的文档。

将您的“详细信息”字段更改为将文本编入单独的字词(标记)的内容:

<field name="details" type="text" ...
<!-- for instance -->

重新索引一切。您可能还想查看其他字段定义。

我建议您阅读schema.xml中的默认类型定义。

答案 1 :(得分:2)

应该

$solr = new Apache_Solr_Service('localhost', '8983', 'solr/');

$solr = new Apache_Solr_Service('localhost', '8983', '/solr');

答案 2 :(得分:1)

添加到data-config.xml

<dataConfig>
  <dataSource type="JdbcDataSource"
             driver="com.mysql.jdbc.Driver"
             url="jdbc:mysql://localhost/admin_pproject"
             user="root"
             password=""/>
  <document>
    <entity name="id"
           query="select id, name,details, owner, subtype, edit, sub, type, provision, active from programme">

           <!-- ADD-->         
           <field column="id" name="id"/>
           <field column="name" name="name" />
           <field column="details" name="details" />
           <field column="owner" name="owner" />
           <field column="subtype" name="subtype" />
           <field column="edit" name="edit" />
           <field column="sub" name="sub" />
           <field column="type" name="type" />
           <field column="provision" name="provision" />
           <field column="active" name="active" />


        </entity>
  </document>
</dataConfig>

测试

答案 3 :(得分:0)

我们可能需要查看您的schema.xml。其中可能存在错误。

如果您使用小写“s”搜索“server”会怎样?

如果修复它,则会出现分析问题,请查看schema.xml。

您还可以查看架构浏览器(请点击管理页面上的链接)。单击“详细信息”字段(左侧),查看1000或10000术语,查看是否看到“服务器”(或“服务器”)一词。您看到的内容会告诉您该单词是否在索引中(至少,如果该字段中的单词少于10,000个)。