2013-03-19 61 views
0

我研究了Apache lucene,發現在我們使用field.store.Yes或store字段存儲字段之前,我們無法檢索當前匹配的特定字段。Apache solr如何索引不同的文件

現在Apache Solr實現我們只使用下面的命令來發布數據建立索引

的Java -Durl = HTTP:// 「本地主機」:8080/Solr的/更新的罐子post.jar * .XML

現在我的問題是solr解析XML文件中的每個字段並存儲它,或者它是否簡單地索引整個文件而不存儲。

搜索了一下後,我才知道schema.xml指定是否存儲字段。

現在我想知道如何爲桌面應用程序做同樣的事情,以便我不需要爲每行指定store.filed.yes。

回答

1

根據您對@bmargulies提供的答案的評論,對於桌面應用程序,您可以使用EmbeddedSolr或直接使用Lucene管理您的索引。在這兩者之間,我會推薦EmbeddedSolr,因爲Solr是Lucene的最佳實踐實現。

+0

我是否仍然需要將文本文件轉換爲xml格式。我的文本文件是apache lucene日誌文件,其大小約爲4到5GB。我的要求是使用solr解析這些文件,以便每當輸入查詢字符串solr時都必須返回包含查詢字符串的整行。有可能嗎? – 2013-03-19 12:26:04

+0

請參閱您的其他問題的更新答案http://stackoverflow.com/questions/15496255/how-to-index-text-files-using-apache-solr – 2013-03-19 14:52:13

1

答案完全取決於您的Solr schema.xml的內容。 Solr只會存儲該文件中定義的字段,並且該文件中的字段定義將指定您引用的Lucene參數。如果某個字段未在<field/><dynamicField/>元素中調出,Solr會記錄一個錯誤;它不會存儲它或索引它。所以,你必須允許你的模式中的所有字段。

Solr還可以在其他配置文件中定義'更新請求處理器'來執行數據的附加預處理。

+0

問題是solr是web應用程序。我的要求是桌面應用程序。是否有像桌面應用程序可用的任何應用程序可用。 – 2013-03-19 07:11:11