如何在 Lucene 中设置可搜索字段

发布于 2024-12-16 21:00:47 字数 157 浏览 1 评论 0原文

我有传入查询,我只想在某些字段(作者、书名)中搜索,而不是在字段(书籍内容)中搜索。我怎样才能在 Lucene 中实现这一点?

另一个问题是,我如何才能为在作者字段中匹配的文档提供更高的排名。例如,doc1在“书籍内容”中匹配,而doc2在“作者”中匹配,我如何才能使doc2排名更高

I have incoming queries and I want to only search in certains fields (author, book title) not in field (book content). How can I achieve this in Lucene?

another questions is that if how can I give a higher rank to documents that have matches in the author field. For example, doc1 have match in "book content", and doc2 has match in "author", how can I rank higher for doc2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

伴梦长久 2024-12-23 21:00:47

您可以使用 BooleanQuery 组合多个查询,并使用 Occur.Should(意为 OR)。我还相信您可以在这种情况下增强特定查询,这意味着特定字段中的匹配比内容等具有更高的相关性。

示例(C#):

var query = new BooleanQuery();
query.Add(new TermQuery("author", searchTerm), Occur.Should);
query.Add(new TermQuery("book title", searchTerm), OCcur.Should);

You can combine multiple queries using BooleanQuery, and have Occur.Should (meaning OR). I also believe that you can boost specific queries in such a scenario, which means that matches in a specific field has higher relevance that for instance, content.

Example (C#):

var query = new BooleanQuery();
query.Add(new TermQuery("author", searchTerm), Occur.Should);
query.Add(new TermQuery("book title", searchTerm), OCcur.Should);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文