2011-03-17 44 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> 

測試