我有一个索引表,其中包含电影的标题。
{"Titanic", "Fight Club", "Pulp Fiction"}
在大多数情况下,我的用户输入查询将是一个较长的字符串,其中可能包含来自我的数据库的电影名称。
例如:“《搏击俱乐部》是我最喜欢的电影!* ”
我试图找到一个“lucene”的方式,搜索索引,如果我的数据库中的任何电影是一个用户输入的子字符串(不区分大小写)。
阅读lucene Query docs,在我看来,所有的查询都可以实现我的需求,即完全相反。用户输入包含在索引值中,但不是包含在用户输入中的索引值。
我是不是漏掉了什么?或者对这个问题有不同的处理方法?
1条答案
按热度按时间vaj7vani1#
我能想到的一种方法是在搜索结果中添加一个额外的通道。默认情况下,当你搜索“电影搏击俱乐部是我最喜欢的电影!“,您将获得文档“搏击俱乐部”、“俱乐部搏击”、“我今天在俱乐部打了一架”的结果。现在,您可以对顶部文档进行额外的简单搜索,以过滤掉“Fight Club”。对于不区分大小写,你只需要在你的索引和搜索分析器中添加一个tokenfilter。还要确保停止词被删除,这样你的第二遍就不必通过太多的文档。