2011-03-17 45 views
0

根据本文档,我将我的db表直接编入索尔http://wiki.apache.org/solr/DIHQuickStart如何从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

数据-config.xml中:http://pastebin.com/vtDZzuqC

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

所有从/示例/ solr的/ CONF/

回答

4

这是您的答案:

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

因此,您的查询“的详细信息:服务器”将ONLY匹配,其中“细节” 正是等于“服务器”,并其中“细节”包含“服务器”文档的文件。

你的“细节”字段更改的东西,将索引的文本作为单独的单词(标记):

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

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

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

2

如若

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

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

HM这并不能帮助我,Solr的本身运行良好。我手工查看了索引,所有的数据都在那里。查询只返回stdClass对象([numFound] => 0 [start] => 0 [docs] => Array()) – 2011-03-17 21:41:11

0

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

如果您搜索带有小写“s”的“服务器”,会发生什么情况?

如果解决了这个问题,那么就有一个分析问题,请查看schema.xml。

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

+1

感谢您的回答。但是,对于服务器和服务器都没有搜索结果。但服务器是在索引(现在我有90个条款)。我记得前几天我开始直接对数据库进行索引,它使用上面的代码为我工作,但现在它只是给我没有结果。我使用源代码编辑了我的问题。请看看它。 – 2011-03-18 06:47:37

1

添加到数据配置。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> 

测试