Lucene IndexSearcher - 搜索用户输入中是否包含索引值

问题描述 投票:0回答:1

我有一个包含电影标题的索引表。

{"Titanic", "Fight Club", "Pulp Fiction"}

在大多数情况下,我的用户输入查询将是一个较长的字符串,其中可能包含我的数据库中的电影名称。

例如“电影搏击俱乐部是我最喜欢的电影!

我正在尝试找到一种“lucene”方式来搜索索引,如果我的数据库中的任何电影是用户输入的子字符串(不区分大小写)。

阅读lucene查询文档,在我看来,所有查询都可以实现与我的需求完全相反的效果,即索引值中包含用户输入,但用户输入中不包含索引值。

我错过了什么吗?或者这个问题有不同的方法吗?

java indexing lucene full-text-search
1个回答
0
投票

我能想到的一种方法是向您的搜索结果添加额外的传递。默认情况下,当您搜索“电影《搏击俱乐部》是我最喜欢的电影!”时,您将获得文档“搏击俱乐部”、“俱乐部搏击”、“我今天在俱乐部打架”的结果。现在,您可以对顶级文档进行额外的简单搜索,以过滤掉“搏击俱乐部”。对于不区分大小写的情况,您只需将小写标记过滤器添加到索引和搜索分析器中即可。还要确保删除停用词,以便您的第二遍不必浏览太多文档。

© www.soinside.com 2019 - 2024. All rights reserved.