首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Lucene结合查询部分和数据库中的部分(MySQL)

问使用Lucene结合查询部分和数据库中的部分(MySQL)
EN

Stack Overflow用户
提问于 2012-09-29 01:43:43
回答 1查看 561关注 0票数 4

我有一个应用程序,需要做过滤,并从文章列表检索结果。对于数据库,我使用NHibernate作为MySQL。该查询还基于关键字执行全文搜索,为此,它使用Lucene.Net。

我的问题是查询跨越“两个”域。例如,我可能需要获取所有包含关键字“流量控制”的文章,并且PublishedOn < 2012-10-01。此外,查询使用分页,例如第2页,页面大小为50。问题是如何创建同时跨越MySQL (对于PublishedOn部件)和Lucene.Net的查询,以利用全文搜索功能。

如果我首先在MySQL上搜索,我不能只得到前50个,因为在Lucene中可能会进一步过滤结果,我需要50作为我的页面大小。如果我从Lucene.Net开始,也是如此。此外,最好是按“相关性”排序,所以这是Lucene可以做的事情,而不是MySQL。

我目前的方法是首先根据MySQL进行过滤,然后检索匹配记录的所有主键。然后,我在Lucene中执行一个查询,其中包含一个将主键与结果列表相匹配的术语查询。然而,Lucene对于这样的查询非常慢,数据库可以包含超过200,000篇文章。在Lucene中执行这样的查询需要很长时间,而对于全文搜索来说,它的速度非常快。

你知道该如何着手解决这样的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-30 16:05:02

Lucene不仅仅是全文搜索。您可以向Lucene文档添加PublishedOn属性并执行查询,如下所示:

代码语言:javascript
复制
Text:"traffic control" AND PublishedOn:[00000000 TO 20121001]

查看Lucene syntax documentation中的"Range Searches“部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12644864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档