Tag: lucene

如何用“like”运算符查询lucene?

通配符*只能在单词的末尾使用,例如user* 。 我想用%user%查询,怎么做?

如何解析/解压缩/解压缩由Nexus生成的Maven存储库索引

我已经从http://mirrors.ibiblio.org/pub/mirrors/maven2/dot-index/nexus-maven-repository-index.gz下载了为Maven Central生成的索引。 我想列出这些索引文件中的工件信息(例如groupId,artifactId,version)。 我已经读过,有一个高级API。 似乎我必须使用以下maven依赖。 但是,我不知道使用什么入口点(哪个类?)以及如何使用它来访问这些文件: org.sonatype.nexus nexus-indexer 3.0.4

弹性搜索Lucene版本错误

我有一个非常简单的ES客户端,它将向本地ES服务器(ES的1.4.1版本)发送查询并获取结果并显示给用户。 现在,我把这个代码带到了一个不同的项目X,并尝试将它与X一起使用,因为我需要一些来自X的API。现在,当我在X中运行相同的代码时,我得到这个错误而不是知道如何解决。 你能帮我解决这个问题吗? 线程“main”中的exceptionjava.lang.NoSuchFieldError:LUCENE_3_6 at org.elasticsearch.Version.(Version.java:45) at org.elasticsearch.node.internal.InternalNode.(InternalNode.java:136) at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159) at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166) at org.bmi.elasticsearch.ranking.TestClass2.main(TestClass2.java:54)

Mac用户 – 如何在Mac中设置CLASSPATHS(我正在进行Lucene演示)

我正在尝试让我的Apache Lucene演示工作,我将在本教程中设置类路径http://lucene.apache.org/java/2_3_2/demo.html 我已经在网上搜索了这两个我发现设置CLASSPATH的解决方案: CLASSPATH=${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar 和 setenv CLASSPATH ${CLASSPATH}:/Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/lucene-core-3.0.3.jar 第二个出现错误-bash:setenv:command not found 第一个似乎接受了确定,但是我尝试了教程中的下一步,我收到了一个错误。 下一步是运行以下内容: Phil-hunters-MacBook:webapps philhunter$ java org.apache.lucene.demo.IndexFiles /Users/philhunter/Desktop/COM562\ Project/lucene-3.0.3/src 这给了我错误: 线程“main”中的exceptionjava.lang.NoClassDefFoundError:org / apache / lucene / demo / IndexFiles 这让我相信我的CLASSPATHS没有正确设置。 假设这个我是对的吗? 我已经尝试过其他教程和演示,并且看到了相同的错误。 我是Lucene的新手,也是mac和Unix shell脚本的新手。 任何人都知道我是否正确设置CLASSPATH,如果这是错误的原因?

在lucene中使用点击荧光笔

关于apache lucene提供的点击荧光笔我有两个问题: 看到这个函数可以解释令牌流参数的使用。 我有几个包含许多字段的大型lucene文档,每个字段中都有一些字符串。 现在我找到了特定查询最相关的文档。 现在找到此文档是因为查询中的多个单词可能与文档中的单词匹配。 我想找出查询中的哪些单词导致了这个问题。 因此,我计划使用Lucene Hit Highlighter。 示例:如果查询是“皮肤医生德里”并且标题为“皮肤科医生”的文档包含单词“皮肤”和“医生”,那么在点击突出显示之后我应该能够从查询中分离出“皮肤”和“医生”。 我一直试图为此编写代码数周。 无法得到我想要的东西。 请问你能帮帮我吗? 提前致谢。 更新: 当前方法:我创建一个包含文档中所有单词的查询。 Field[] field = doc.getFields(“description”); String desc = “”; for (int j = 0; j < field.length; ++j) { desc += field[j].stringValue() + " "; } Query q = qp.parse(desc); QueryScorer scorer = new QueryScorer(q, reader, "description"); Highlighter highlighter […]

从Lucene找到搜索命中的位置

使用Lucene,在搜索结果中找到匹配的推荐方法是什么? 更具体地说,假设索引文档具有字段“fullText”,其存储某些文档的纯文本内容。 此外,假设对于这些文件中的一个,内容是“快速的棕色狐狸跳过懒狗”。 接下来,搜索“狐狸狗”。 显然,这份文件很受欢迎。 在这种情况下,Lucene可以用来提供类似于找到的文档的匹配区域吗? 所以对于这种情况,我想产生类似的东西: [{match: “fox”, startIndex: 10, length: 3}, {match: “dog”, startIndex: 34, length: 3}] 我怀疑它可以通过org.apache.lucene.search.highlight包中提供的内容来实现。 我不确定整体方法……

在Lucene中获取学期频率

有没有一种快速简便的方法可以从Lucene索引中获取术语频率,而无需通过TermVectorFrequencies类,因为这需要花费大量时间来处理大型集合? 我的意思是,是否有类似TermEnum东西,它不仅有文档频率,还有术语频率? 更新:使用TermDocs太慢了。

如何获得solr结果中的facet范围?

假设我在Solr中有一个名为price的字段,我将该字段刻面。 我希望将facets作为值的范围(例如:0-100,100-500,500-1000等)。 怎么做? 我可以预先指定范围,但我也想知道是否可以根据文档中的值自动计算范围(比如5个值)?

Lucene:多词短语作为搜索词

我正在尝试使用Apache Lucene创建一个可搜索的电话/本地商业目录。 我有街道名称,公司名称,电话号码等字段。我遇到的问题是,当我尝试在街道上搜索街道名称有多个单词(例如“新月”)时,不会返回任何结果。 但如果我尝试用一​​个单词搜索,例如’新月’,我会得到我想要的所有结果。 我正在使用以下内容索引数据: String LocationOfDirectory = “C:\\dir\\index”; StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_34); Directory Index = new SimpleFSDirectory(LocationOfDirectory); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE.34, analyzer); IndexWriter w = new IndexWriter(index, config); Document doc = new Document(); doc.add(new Field(“Street”, “the crescent”, Field.Store.YES, Field.Index.Analyzed); w.add(doc); w.close(); 我的搜索工作如下: int numberOfHits = 200; String LocationOfDirectory = “C:\\dir\\index”; TopScoreDocCollector collector […]

用Lucene扼杀英语单词

我正在Java应用程序中处理一些英文文本,我需要阻止它们。 例如,从文字“amenities / amenity”我需要得到“amenit”。 该function如下: String stemTerm(String term){ … } 我找到了Lucene分析仪,但它看起来太复杂了我需要的东西。 http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/analysis/PorterStemFilter.html 有没有办法用它来阻止单词而无需构建分析器? 我不了解所有分析仪业务…… 编辑 :我实际上需要一个词干+词形还原。 Lucene可以这样做吗?