草庐IT

java - 使用 JEST API 进行 Elasticsearch 扫描和滚动

我目前正在与JEST合作:https://github.com/searchbox-io/Jest是否可以使用此API进行扫描和滚动?http://www.elasticsearch.org/guide/reference/api/search/search-type/我目前正在使用搜索命令:Searchsearch=newSearch("{\"size\":"+RESULT_SIZE+",\"query\":{\"match_all\":{}}}");但我担心大型结果集。如果为此使用搜索命令,如何设置“search_type=scan&scroll=10m&size=50”参数?

java - 在索引中搜索作为搜索词前缀的词,反之亦然(!)

如果我搜索“bahnhofstrasse”,我希望Lucene找到包含术语“bahnhofstr”的文档,即,我不仅要查找包含以我的搜索词为前缀的术语的文档,还要查找文档包含本身就是我的搜索词前缀的词...我该怎么做? 最佳答案 如果我理解正确,并且您的搜索字符串是一个精确的字符串,您可以在Lucene中设置queryParser.setAllowLeadingWildcard(true);以允许前导通配符搜索(可能会也可能不会慢一点——我见过它们相当快,但在只有60,000多个Lucene文档的情况下)。您的示例查询语法可能类似于

java - 使用 apache lucene 进行词形还原

我正在使用apachelucene开发一个文本分析项目。我需要对一些文本进行词形还原(将单词转换为它们的规范形式)。我已经编写了生成词干的代码。使用它,我可以转换以下句子Thestemisthepartofthewordthatneverchangesevenwhenmorphologicallyinflected;alemmaisthebaseformoftheword.Forexample,from"produced",thelemmais"produce",butthestemis"produc-".Thisisbecausetherearewordssuchasproducti

java - 如何在我的java项目中使用两个版本的jar

在我的java项目中,我需要使用依赖lucene-3.6.2的neo4j-1.9.3,以及ElasticSearch取决于lucene-4.4.0。我知道如果我想直接使用两个版本的lucene,我可以使用ClassLoader从lucene中加载不同的类。但问题是我现在不会直接使用lucene的api。有什么方法可以在neo4j的api运行时加载lucene-3.6.2,在运行elasticsearch的api时加载lucene-4.4.0。现在两个版本的lucene冲突了,我需要在一个项目中运行neo4j和elasticsearch。如何解决依赖问题?提前致谢。

java - Lucene热索引备份使用IndexReader代替IndexWriter/SnapshotDeletionPolicy

是否可以接受以下代码行来获取lucene索引或IndexWriter/SnapshotDeletionPolicy的热备份,如Luceneindexbackup中所述应该遵循什么?Directorydir=...;IndexReaderreader=IndexReader.open(dir);IndexCommitcommit=reader.getIndexCommit();CollectionfileNames=commit.getFileNames();//copythefilesreader.close();即使在锁定的索引上,您也可以在提交点上打开读取器,而写入器仍可能更改索引

java - Solr 不会覆盖 - 重复的 uniqueKey 条目

我对Solr5.3.1有疑问。我的架构相当简单。我有一个uniqueKey,它是字符串形式的“id”。索引、存储和必需的、非多值的。我首先使用“content_type:document_unfinished”添加文档,然后覆盖相同的文档,具有相同的id但另一个content_type:document。然后该文档在索引中出现两次。同样,唯一的uniqueKey是字符串形式的“id”。该id最初来自mysql-indexprimaryint。而且看起来这种情况不止发生一次:http://lucene.472066.n3.nabble.com/uniqueKey-not-enforced

java - Lucene 3.0.3 不删除文件

我们使用Lucene来索引一些内部文档。有时我们需要删除文件。这些文档有一个唯一的id,并由DocItem类表示,如下所示(所有代码都是一个简化版本,只有重要的(我希望)部分):publicfinalclassDocItem{publicstaticfinalStringfID="id";publicstaticfinalStringfTITLE="title";privateDocumentdoc=newDocument();privateFieldid=newField(fID,"",Field.Store.YES,Field.Index.ANALYZED);privateFiel

java - Lucene 更新后找不到文档

似乎每当我更新索引中的现有文档时(删除/添加的行为相同),都无法使用TermQuery找到它。这是一个简短的片段:iw=newIndexWriter(目录,配置);Documentdoc=newDocument();doc.add(newStringField("string","a",Store.YES));doc.add(newIntField("int",1,Store.YES));iw.addDocument(doc);Queryquery=newTermQuery(newTerm("string","a"));Document[]hits=search(query);doc=

java - 如何在 Hibernate Search 中使用通配符和空格搜索字段

我有一个搜索框,它根据给定的输入在标题字段上执行搜索,因此用户推荐了所有以插入的文本开头的可用标题。它基于Lucene和Hibernate搜索。在输入空格之前它工作正常。然后结果消失了。例如,我希望“LearningH”的结果是“LearningHibernate”。但是,这不会发生。你能告诉我我应该在这里使用什么吗?查询生成器:QueryBuilderqBuilder=fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(LearningGoal.class).get();Queryquery=qBuilde

Elasticsearch和Lucene都是开源的搜索和分析引擎,它们都使用相同的底层数据结构,即倒排索引

Elasticsearch和Lucene都是开源的搜索和分析引擎,它们都使用相同的底层数据结构,即倒排索引。然而,它们在功能和用途上有所不同。Lucene是一个高性能的搜索工具库,它提供了全文搜索功能,包括索引、搜索、高亮显示等。Lucene主要是一个独立的库,开发者可以在自己的应用程序中嵌入Lucene,以实现全文搜索功能。Elasticsearch是一个分布式搜索和分析引擎,它基于Lucene构建,但提供了更为丰富的特性和易用性。Elasticsearch可以处理大量数据,支持实时分析、复杂的查询和数据聚合等。它还提供了RESTfulAPI和JSON数据格式,使得与应用程序的集成更为简单。