草庐IT

java - "-"字符的 Lucene 索引问题

我在使用包含“-”字符的索引词的Lucene索引时遇到问题。它适用于某些包含“-”的单词,但不适用于所有单词,我没有找到它不起作用的原因。我正在搜索的字段经过分析并包含带和不带“-”字符的单词版本。我正在使用分析器:org.apache.lucene.analysis.standard.StandardAnalyzer举个例子:如果我搜索“gsx-*”我得到一个结果,索引字段包含“铃木GSX-R1000GSX-R1000GSXR”但是如果我搜索“v-*”,我没有得到任何结果。预期结果的索引字段包含:“铃木DL1000V-STROMDL1000V-STROMVSTROMVSTROM”如果

java - org.apache.lucene.index.IndexNotFoundException : no segments* file found in org. apache.lucene.store.RAMDirectory

我是Java和Lucene的新手。我的代码从文件中获取一行并将其存储在LuceneIndex中。但是当我创建一个IndexReader来搜索和读取索引时,它会抛出一个异常。我的java代码如下。在创建IndexReader时它抛出一个IndexNotFoundExceptionstaticStringitemsfreq[];staticStandardAnalyzeranalyzer=newStandardAnalyzer(Version.LUCENE_35);staticIndexWriterConfigconfig=newIndexWriterConfig(Version.LUCE

java - 如何用 "like"算子查询lucene?

这个问题在这里已经有了答案:LeadingwildcardcharacterthrowserrorinLucene.NET(3个答案)关闭9年前。通配符*只能用在单词的末尾,如user*。我想用一个类似的%user%查询,怎么办?

java - 尝试启动 Apache Solr 时出现 "Nothing to start"

我有Ubuntu14.10,现在我想安装并试用ApacheSolr。首先,我访问了官方ApacheSolr页面并下载了一个ziparchive.然后我将它解压缩到一个名为solr的文件夹中,这样这个手动创建的文件夹现在包含这些文件:contexts/libs/modules/...start.jar在这些文件中,我看到了start.jar,因此,按照其中一个教程,我尝试了这个命令(在这个文件夹内):$java-jarstart.jar但是,结果,我得到了这个错误信息:警告。没有开始,退出...。我想知道我做错了什么。 最佳答案 根据

java - Lucene 良好实践和线程安全

我正在使用lucene来索引文档并执行搜索,之后我会立即删除它们。所有这些都可以被认为是一个原子操作,包括以下步骤:index(writer)-->search(searcher)-->getdocsbyscore(reader)-->deletedocs(reader)此操作可以由多个并发线程在同一索引上执行(使用FSDirectory)。重要提示:每个线程处理一组单独的文档,因此一个线程不会触及另一个线程的文档为此我有几个问题:1)我应该使用IndexWriter、IndexReader和IndexSearcher的单个实例(对于所有线程)吗?(它们应该是线程安全的)2)Index

java - Lucene:异常 - 查询解析器在 "some word"之后遇到 <EOF>

我正在研究一个分类问题,使用LuceneAPI根据训练数据将产品评论分类为正面、负面或中立。我正在使用一个包含评论对象的数组列表-“reviewList”,它在抓取网页时存储每个评论的属性。然后使用索引器对包括“极性”和“评论内容”的评论属性进行索引。然后,根据索引对象,我需要对剩余的评论对象进行分类。但是在这样做的同时,有一个审查对象,查询解析器在“审查内容”中遇到EOF字符,因此终止。导致错误的行已相应注释-IndexReaderreader=IndexReader.open(FSDirectory.open(newFile("index")));IndexSearchersear

java - Lucene 中的关键字(OR,AND)搜索

我在我的门户(基于J2EE)中使用Lucene进行索引和搜索服务。问题出在Lucene的关键字上。当您在搜索查询中使用其中之一时,您会收到错误消息。例如:searchTerms="ikORjij"这很好用,因为它会搜索"ik"或"jij"searchTerms="ikANDjij"这很好用,它搜索"ik"和"jij"但是当你搜索时:searchTerms="OR"searchTerms="AND"searchTerms="ikOR"searchTerms="ORik"等等,会报错失败:ComponentName:STSE_RESULTSClass:org.apache.lucene.q

java - 比 Solr 更喜欢 Apache Lucene 的情况?

使用Solr1.4有几个优点(开箱即用的分面搜索、分组、复制、http管理与luke,...)。即使我在我的Java应用程序中嵌入了搜索功能,我也可以使用SolrJ在使用Solr时避免HTTP权衡。完全推荐SolrJ吗?那么,您什么时候会推荐使用“纯Lucene”?它具有更好的性能还是需要更少的RAM?它的单元测试性更好吗?PS:我知道thisquestion. 最佳答案 如果您有Web应用程序,请使用Solr-我尝试过将两者集成,而且Solr更容易。否则,如果您不需要Solr的功能(想到的最重要的功能是分面搜索),则使用Lucen

java - 模仿 Elasticsearch MatchQuery

我目前正在编写一个程序,该程序当前使用elasticsearch作为后端数据库/搜索索引。我想模仿/_searchendpoint的功能,目前使用匹配查询:{"query":{"match":{"message":"NeuralDisruptor"}}}做一些示例查询,在大量WorldofWarcraftdatabase上产生了以下结果:SearchTermSearchResult-----------------------------------------NeuralDisruptorNeuralNeedlerLovlybraceletRubyBraceletLovelybrac

python - lucene/ python

我可以直接从python使用lucene,最好不使用二进制模块吗?我主要对读取访问感兴趣——能够从python对现有的lucene索引执行查询。 最佳答案 PyLucene是围绕Lucene的Python包装器。因此,你还必须安装Lucene,它的安装可能有点复杂(尤其是在Windows上!) 关于python-lucene/python,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio