【问题标题】:how to use lucene.net to query a solr index如何使用 lucene.net 查询 solr 索引
【发布时间】:2011-03-13 13:30:50
【问题描述】:

我已经使用 solr DIH 创建了索引。我想使用 Lucene.net 库查询该索引数据。

solr索引的路径是D:\Tests\solr\example\example-DIH\solr\db\data\index

我用来创建lucene索引目录对象的代码如下:

Analyzer anz = new StandardAnalyzer();
Directory dir = 
 FSDirectory.GetDirectory(@"D:\Tests\solr\example\example DIH\solr\db\data\index", false);
IndexSearcher isearcher = new IndexSearcher(dir);

在执行最后一行代码时,出现以下异常:

找不到文件 'D:\Tests\solr\example\example-DIH\solr\db\data\index\segments'.

鉴于我的 solr 索引文件夹中的文件是

  • _0.fdt
  • _0.fdx
  • _0.fnm
  • _0.frq
  • _0.nrm
  • _0.prx
  • _0.tii
  • _0.tis
  • segments.gen
  • segments_2

那么问题出在哪里??

【问题讨论】:

    标签: solr lucene.net lucene dih


    【解决方案1】:

    当 solr 在 Lucene 2.9.3 上运行时,Lucene.NET 只能达到 Lucene 版本 2.9.2.2 左右。这意味着 Lucene.NET 不能轻易索引 SOLR 索引。

    现在,您可以使用SolrSharp 之类的方式直接访问 Solr,避开此版本问题。

    【讨论】:

    • 我的问题是我已经使用 SolrNet 库来查询我的索引,我想将我自己的引用 SolrNet 的程序集添加到 Sql Server 程序集,并在 sql 上创建一个调用内部代码的外部函数我自己的大会。不幸的是,SolrNet 和 SolrSahrp 都引用了 Sql Server 不支持的 System.Web 程序集。所以我需要在 solr 索引上使用 lucene 来解决这个问题。
    • @SubPortal:很遗憾,如果没有 System.Web,您将无法拥有 SolrNet 或 SolrSharp,因为与 Solr 的所有通信都是通过 HTTP 进行的。
    • @SubPortal:为什么要在 SQL Server 上运行 SolrNet?
    • @SubPortal:我建议创建一个关于在 SQL Server 上运行 System.Web 的问题和另一个想要在 SQL Server 上运行 SolrNet 的真正原因。
    • 我需要从 sql server 运行 Solr,因为我的数据在 Sql Server 和 Solr 上拆分,并且我有一个 Sql Server 过程,它的逻辑非常复杂,适用于我的数据的两个部分。跨度>
    猜你喜欢
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2011-05-25
    • 2010-11-19
    • 2017-03-26
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多