gpt4 book ai didi

java - 在 Lucene 中模糊搜索多词术语

转载 作者:行者123 更新时间:2023-11-29 09:30:51 24 4
gpt4 key购买 nike

我正在尝试添加搜索功能,让人们可以通过电子邮件地址(如果有)或姓名(如果没有)查找潜在 friend 。我目前正在研究 Lucene,但我愿意考虑其他解决方案。我正在尝试创建一组这样的文档:

|  id  |   text   |   text   |
| 1234 | a@b.com | John Doe |
| 1235 | ab@c.com | Jane Doe |
| 1236 | c@ba.com | Madonna |

(是的,text 是指定的 multiply)

这都是索引

new IndexWriter(directory, new IndexWriterConfig(Version.LUCENE_40, new KeywordAnalyzer()));

然后我进行搜索:

TopDocs results = mySearcher.search(
new FuzzyQuery(new Term("text", term), 2, 0),
10);

我可以很好地使用电子邮件进行搜索。搜索 a@b.comab@c.com 都可以。我也可以搜索像 Madonna 这样的单词名称。但是,一旦我尝试查找多词名称,它就会崩溃。搜索 JohnJaneJohn DoeDoe 都不会返回任何结果。

我很好奇更好的方法(2 编辑距离匹配可以带我走多远有一些明显的限制),以及如何使多词匹配工作。

最佳答案

至于多词匹配,我会查看您的分析器,以及您传递给每个文档中每个字段的 analyze.yes/analyze.no 设置。

分析器标记搜索,但如果您不使用相同的分析器实例进行搜索和索引,您会得到各种带有空格的奇怪行为 - 除其他外。

关于java - 在 Lucene 中模糊搜索多词术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com