代码之家  ›  专栏  ›  技术社区  ›  sagescrub

网站的开源linq搜索引擎

  •  2
  • sagescrub  · 技术社区  · 16 年前

    我想在我的网站上添加一个搜索引擎。我希望它处理布尔搜索,并按顺序或最佳匹配方式给我一个结果列表。我需要它能够与LINQ一起工作,因为我想向最终运行的查询添加额外的WHERE子句。我正在寻找最好的开源.NET搜索引擎,与Linq一起工作。我喜欢lucene.net,但问题是linq接口(linq到lucene)自2008年以来一直没有更新。有什么好的选择吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Mikael Svenson    16 年前

    您可以尝试使用Microsoft提供的免费搜索服务器Express。它在 beta for the 2010 version 但很快就会被释放。(SharePoint)搜索API与SQL非常相似,因此可以附加附加的where子句。

    它不是linq或开放源码,但它是免费的,可能在您的情况下工作。我自己也看过LuceneLinqAPI,得出了和你一样的结论。它没有更新,而Lucene仍在努力。

    另一种选择是创建自己的Lucene Linq提供者,但这需要一些工作。

    文件 FullTextSqlQuery 班级。(带样本的旧版本文档 here )

    下面是一个代码片段,显示它的外观:

    FullTextSqlQuery fullTextSqlQuery = new FullTextSqlQuery(site)
    fullTextSqlQuery.QueryText = String.Format("SELECT Title, SiteName, Path FROM Scope() WHERE \"scope\"='All Sites' AND CONTAINS('\"{0}\"')", searchPhrase),
    

    您可以在查询的where部分追加更多内容。

        2
  •  0
  •   sagescrub    16 年前

    我决定使用SQL Server的全文索引功能。它不像lucene.net那样功能齐全,但根据我的要求,它可以很好地完成工作。