gpt4 book ai didi

lucene - 在 Lucene 索引中存储带有撇号的单词

转载 作者:行者123 更新时间:2023-12-04 17:28:56 24 4
gpt4 key购买 nike

我在 Lucene 索引中有一个公司字段。
索引的公司名称之一是:穆迪

当用户输入以下任何关键字时,我希望这家公司出现在搜索结果中。
1.穆
2.心情
3.穆迪
4.穆迪

我应该如何在 Lucene 中存储这个索引以及我应该使用什么类型的 Lucene Query 来获得这种行为?

谢谢。

最佳答案

根据你的说明,我想把你的问题分成两个,依次回答:

  • 如何将带撇号的单词与不带撇号的相似单词进行索引?例如将 Moodys 和 Moody's 映射到相同的索引项。
  • 如何在 Lucene 中实现自动完成搜索 - 即给定索引,使用单词前缀查找文档,例如将 Moo 映射到 Moodys ?

  • 1 相对容易 - 使用 StandardToeknizer创建一个将撇号和 s 与前一个单词组合在一起的标记,然后是 StandardFilter删除撇号和 s。这会将穆迪转换为穆迪。 A StandardAnalyzer这样做以及更多(小写和停用词删除),这可能超出您的需要。使用词干分析器应该使 Moodys 和 Moody 达到相同的目的。试试 SnowBallFilter为了这。

    2 更难:Lucene 的 PrefixQuery Alan 提到的 ,只有在公司名称是字段中的第一个单词时才有效。您需要类似于 this question about auto-complete in Lucene 的答案.

    关于lucene - 在 Lucene 索引中存储带有撇号的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190699/

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