如何获取Lucene模糊搜索结果的匹配项?
使用 Lucene 模糊搜索时如何获得匹配的模糊项及其偏移量?
IndexSearcher mem = ....(some standard code)
QueryParser parser = new QueryParser(Version.LUCENE_30, CONTENT_FIELD, analyzer);
TopDocs topDocs = mem.search(parser.parse("wuzzy~"), 1);
// the ~ triggers the fuzzy search as per "Lucene In Action"
模糊搜索效果很好。如果文档包含术语“fuzzy”或“luzzy”,则它被匹配。如何获得匹配的术语以及它们的偏移量是多少?
我已确保所有 CONTENT_FIELD 均使用 termVectorStored 添加,其中包含 Positions 和 Offsets 。
how do you get the matching fuzzy term and its offset when using Lucene Fuzzy Search?
IndexSearcher mem = ....(some standard code)
QueryParser parser = new QueryParser(Version.LUCENE_30, CONTENT_FIELD, analyzer);
TopDocs topDocs = mem.search(parser.parse("wuzzy~"), 1);
// the ~ triggers the fuzzy search as per "Lucene In Action"
The fuzzy search works fine. If a document contains the term "fuzzy" or "luzzy", it is matched. How do I get which term matched and what are their offsets?
I have made sure that all CONTENT_FIELDs are added with termVectorStored with positions and offsets .
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有直接的方法可以做到这一点,但是我重新考虑了 Jared 的建议并能够使解决方案发挥作用。
我在这里记录这一点,以防其他人遇到同样的问题。
创建一个实现 org.apache.lucene.search.highlight.Formatter 的类
主代码
There was no straight forward way of doing this, however I reconsidered Jared's suggestion and was able to get the solution working.
I am documenting this here just in case someone else has the same issue.
Create a class that implements
org.apache.lucene.search.highlight.Formatter
Main Code