Lucene 信息检索数据库格式?

我正在寻找一些关于信息检索系统(如Lucene)如何存储索引以进行快速“相关性”查找的文档。我的Google fu让我失望:我发现了一个描述Lucene文件格式的页面,但它更关注每个数字的位数,而不是数据库如何用于生成快速查询 肯定有人有一些有用的书签,他们可以参考我 谢谢 Lucene索引是一个反向索引,因此任何关于该主题的搜索都应该是相关的,比如: 没错,这是一个倒排索引,但如果我有一个10个术语的查询,lucene真的在倒排索引中查找每个术语,将结果相交,并对它们进行排序吗?本质上,

Lucene 选择具有自定义排名功能的独立搜索服务器,Spatial search

我正在研究为我参与的项目选择搜索服务器的不同选项。搜索服务器用于在Rails内置的约会网站上提供搜索结果,在该网站上,搜索提供了所有“配对”的魔力 典型的查询涉及使用表达式(伪代码)对文档/结果进行排序: 按排名排序: +50如果has_图像属性为true +10如果has_boost属性为true +如果纬度/经度在距离[点]40英里以内,则为50 +20如果纬度/经度在80英里[点]以内 -(从属性“年龄”到30的距离) 筛选依据: 属性“年龄”介于25和35之间 属性“性别”等于“

使用2.3.1创建的lucene索引是否与lucene 3.0.3兼容

我们已经用Lucene 2.3.1为我们的文档编制了索引,现在想转到Lucene 3.0.3以获得更好的功能。我想知道索引是否会按原样工作,我是否能够使用3.0.3在现有索引中添加更多文档,而无需任何麻烦,或者我是否必须重新编制整个索引 提前非常感谢。我非常确定,如果索引是在Lucene 2下构建的,那么它们将与Lucene 3不兼容(事实上,我对此持99%的肯定态度) 但是,您可以转换它们,而不是重建它们。请在这方面寻找一些高级指导。谢谢Brent。那篇文章内容丰富。正如它提到的,变化似乎只是

Lucene Solr删除排名或修改排名功能

我想优化我的Solr引擎。我不想要排名结果。我只想要所有符合我的查询的文档,我有任何方法可以删除它。因此,检索数据有助于改进?无需删除相关性排名即可实现您想要的结果 通过将rows参数设置为与numfound相同的数字,您将检索与查询匹配的所有文档http://url-to-some-server/solr/select?q=somequery&rows=200 如果您希望文档以其他方式排序,而不是按相关性排序,只需添加一个&sort=somefield desc 其中somefield是一个可

Lucene Fieldable.tokenStreamValue()为标记化字段返回null

我使用lucene进行N-Gram匹配。我设置了一个要使用N-Gram分析器分析的字段。我想看看从分析中得到的标记是什么样子的,以确保n-gram的计算是正确的 如果我在文档的分析字段上调用方法Fieldable.tokenStreamValue(),我会得到null,而调用Fieldable.isTokenized()会返回true 我必须补充一点,查询的结果与正确生成的n-gram是一致的 对此有何解释?我基本上是在做这里提到的事情: 以下是完整的代码: public class Test

Lucene中的简单包含查询

假设我在Lucence中存储了一个短的未分析字段,有没有一种方法可以搜索该字段包含特定子字符串的文档 例如,该字段值“AA-883 98/67”可与以下子字符串“883”、“98/67”、“AA-883”、“883 98”等匹配 我需要在查询Lucene时将其与其他过滤器结合使用。这是针对Lucene.NET 2.9的,您可以使用,但是如果通配符以通配符(*或?)开头,那么如果您在该字段中有许多不同的术语,则速度会非常慢 下面是一个演示如何编写通配符查询的快速示例。它使用了不推荐使用的内容,应该

Lucene 弹性搜索-搜索资产可用性

我想知道是否有一种方法可以使用弹性搜索来进行查询,只返回特定日期范围内可用的对象?如何构造数据 我需要的是查询一个给出开始和结束日期的db,并查找在开始和结束日期之间的整个期间内该期间可用的所有对象 {object-available: { {start:'01/01/2012', end:'03/02/2012'}, {start:'05/05/2012', end:'31/12/2012'} } 搜索2012年1月1日至2012年1月15日之间可用的对象时应返回此对象, 但是搜索2012年

Lucene查询和and逻辑运算符

我需要在Lucene.Net版本3中创建两个NumericRangeQueries和一个term查询。我知道我可以对ORs使用Combine方法,但还没有弄清楚如何处理查询。这能做到吗 谢谢使用布尔查询并使用添加两个查询。必须。见谢谢,这就是我要找的。

如何在Lucene索引中从字符串字段中搜索单词 如何从Lucene索引字符串字段中搜索单词?

我有lucene索引,带有字段标题,包含文档标题 例如:电视不工作,手机不工作 我想从标题中搜索特定的单词 下面的代码给出了完整内容的结果,如果我将完整内容更改为标题,则不会得到任何结果 Query qry = null; qry = new QueryParser(FULL_CONTENT, new SimpleAnalyzer()).parse("not"); Searcher searcher = null; searcher = new IndexSearcher(i

如何使用Lucene 4.3获得更多类似当前文档的文档?

使用Lucene 4.3.0 对Lucene来说是新的。我想获得更多类似于当前所选文档的文档。根据我的研究,Lucene的旧版本更像这样(这与我想要的行为相似) 我整理了一些玩具代码来测试选项。我已完成索引,并在索引中包含TermVector 代码例外 QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "body", this.analyzer); Query query = null ; try { query =

Lucene的规范是什么

我不明白它们是什么,如果能简单地解释一下它们给世界带来了什么价值,而不需要太多关于它们如何工作的实施细节,我将不胜感激。标准是分数计算的一部分。标准值可以按你喜欢的方式计算,真的。将范数区分开来的主要原因是,它是在索引时间计算的。通常,影响分数的其他因素在查询时根据文档与查询的匹配程度进行计算。norm通过与文档一起存储来节省查询性能 在Lucene的文章中可以找到标准实现,并对其进行了详细描述。在这里,它是设置字段提升的乘积(或者所有字段提升的乘积,如果字段上设置了多个字段)和“lengthN

Lucene搜索文本中嵌入的关键字

下面是我的问题陈述。请让我知道如何通过Lucene 4.3.1实现这一点。我确实查看了不同的默认查询,但似乎没有任何查询满足我的要求。 如果这在Lucene中是不可能的,是否有其他软件可以帮助我实现这一点。另外请注意,我有一个非常严格的周转时间,所以搜索需要做得非常快。我看到的最大值大约是10毫秒 我有一个包含姓名列表的文件(格式为“名字”“中间名”“姓氏”),可能在10K左右。这些名称必须编入索引,以便我可以对传入的查询执行搜索 例如 将编入索引的名称列表 第一个我最后一个 第一分钟最后一分

Lucene ElasticSearch:未分析字段中出现的术语越多,得分越高?

这是过去一周左右我一直在思考的问题。我以为我把它钉牢了,但显然没有 我的文档中有一个字段“tags”,它当前是一个未分析的字段。当我查询此字段时,我希望带有更多标记的文档=query返回更高的分数 示例:假设我在tags字段中查询“ruby” 我已尝试按如下方式索引我的标记字段。但他们都没有达到我想要的。在所有这些情况下,文档1的得分从未最高 :tags => {:type => 'string', :index => 'not_analyzed', :include_in_a

Lucene Luke 4.6.1新错误?

所以我第一次尝试使用卢克,我遇到了一些麻烦。我将其指向我想要的目录,但看到以下内容: org.apache.lucene.index.IndexFormatTooNewException:不支持格式版本(资源:SimpleFSIndexInput(path=“C:\Users*me*\Chat Data\Chat Data\index\segments.gen”):-3(需要介于-2和-2之间) 有人知道如何解决这个问题吗?这是一个兼容性问题吗?我迷路了。看起来你使用的是一个版本的Luke,对你

elasticsearch Lucene和Elasticsearch的区别是什么

我知道ElasticSearch是基于ApacheLucene构建的,但我想知道两者之间的显著区别。Lucene是一个Java库。 您可以将其包含在项目中,并使用函数调用引用其函数 Elasticsearch是基于JSON的分布式web服务器,构建于Lucene之上。 虽然是Lucene在做下面的实际工作,但Elasticsearch为我们提供了一个方便的Lucene层。在Elasticsearch中创建的每个碎片都是一个单独的Lucene实例。 总而言之 Elasticsearch构建在Luc

elasticsearch 现有字段ElasticSearch中的完成建议器

在我的elasticsearch索引中,我为一堆工作编制了索引。为了简单起见,让我们说它们是一堆工作头衔。当人们在我的搜索引擎中输入一个职位时,我想用可能的匹配项“自动完成” 我在这里调查了完成建议: 然而,我发现的所有示例都涉及在索引上创建一个新字段,并在索引/导入时手动填充此字段 有没有办法在现有字段上设置完成建议?即使这意味着重新建立数据索引也没关系。例如,当我想保留原始的未分析文本时,我可以在映射中执行如下操作: "JobTitle": { "type": "string",

Lucene 如何在elasticsearch中知道地理坐标是否位于地理多边形内?

我使用的是弹性搜索1.4.1-1.4.4。我正在尝试将一个地理多边形形状(文档)索引到我的索引中,现在当该形状被索引时,我想知道一个地理坐标是否位于该特定索引地理多边形形状的边界内 GET /city/_search { "query":{ "filtered" : { "query" : { "match_all" : {} }, "filter" : { "geo_polygon" : {

Lucene solr geodist()给出了错误的距离

我在solr查询中使用geodist。以下是我的疑问 q=(name:(*)&fl=person_id, name, longitude, lattitude, distance:geodist()&fq={!geofilt}&spatial=true&pt=73.7708441,18.5664871&d=10&sort=geodist() asc&group=true&group.field=person_id&group

elasticsearch ElasticSearch不返回单词前缀或后缀为点或的文档#

为搜索具有给定技能的文档而形成的搜索查询 当我用java等其他技能取代c#时,结果就来了。但若在搜索查询中提到c#或.net,那个么即使这些技能已经被索引,结果也是空白的 由于允许最大字符数,我已删除内容节。 您可以看到c#在文档中被索引,但仍然无法得到结果 我可以看到查询的格式正确。是我遗漏了什么导致了这个问题。我正在使用空白标记器我可以看到查询时分析似乎工作正常,但在索引时如何分析?和上的默认标记将导致c查询不匹配,如下所示: curl -XGET http://192.168.12

Lucene kwic中的内联标记:汇总显示为空格

我试图在eXist服务器上使用xquery显示一些搜索结果,如下所示: kwic:summarize($doc//tei:text, <config width="60"/> 它应显示为: th et tæ b re ff thettæ breff 如何使kwic:summary不插入这些空格?我通过将eXist db 2.1实例升级到eXist db 3.2解决了这个问题。eXist的哪个版本?您是否尝试将其添加到查询的序言中声明边界空间条或声明选项存在:序列化“缩进=否”谢

Lucene in Action book和field index在6.x中分析的参数API变化的相关性如何

我正在读《lucene在行动》第二版,考虑到我们现在是6.x版,这本书有多重要 我正在阅读它,注意到API中关于Field.Index的内容发生了变化。现在如何在6.x中实现这一点 doc.add(new Field("city", "Den Haag", Field.Store.YES, Field.Index.ANALYZED)); 在我看来,它已经过时了 通常应该使用字段的不同子类。在Javadoc文档中,您可以看到

使用apache lucene删除停止字时出现异常

我使用以下代码从输入文本中删除停止字。当运行tokenStream.incrementToken()时,我遇到以下异常 java.lang.IllegalStateException: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of

Lucene查询结果对于long和double值不正确

我使用Lucene 6.1.0为具有名称和值的元素编制索引 例如 由于我对long和double值使用相同的字段,因此如果min和max值有不同的符号,我的RangeQuery会得到奇怪的结果 LongPoint.newRangeQuery(field, minValue, maxValue); DoublePoint.newRangeQuery(field, minValue, maxValue); 这个例子是正确的: 值:[1到1]值:[0.5到1.0] 结果: 0.5双_0.5 1长_1

有没有办法从Lucene索引中获取字数?

我使用的是最新的ApacheLucene版本8.1.1 有可能吗?我如何获得Lucene索引中存储的所有(非停止词)术语的字数?结果应该是: term1 453443 term2 445484 term3 443333 等等 我需要在Java或Scala中使用它,但是任何语言都可以演示它的API…您可以在下面找到一个示例实现 注意,count给出的是文档数,而不是出现次数(luceneword count 4,document count 3)。此外,停止词也不会被省略 import java

短语的Lucene模糊匹配

我试图使用ApacheLucene对短语“GrandPrarie”(故意拼错)进行模糊匹配。我的问题的一部分是~操作符只对单个单词进行模糊匹配,并表现为短语的近似匹配 有没有办法用lucene对短语进行模糊匹配?对模糊短语没有直接的支持,但您可以通过显式地模拟它,然后将它们添加到列表中。生成的查询如下所示: <MultiPhraseQuery: "grand (prarie prairie)"> Lucene 3.0拥有支持模糊短语查询的功能。这是contrib软件包中的内容。通过

在Windows中使用Lucene查询文件属性

我计划在我的一个项目中使用ApacheLucense,我想根据文件属性为文件编制索引,我不会为数据编制索引,我希望lucense查询索引,以便我可以根据属性快速找到要创建的文件列表 例如:请给我所有访问时间大于2005年10月10日且访问时间小于2010年4月10日的文件以及james创建的文件 我能用Lucene做这样的项目吗?或者我最好使用windows search,因为foor打印非常重,几乎有5MB:而且我不得不将其作为应用程序的一部分进行捆绑,这似乎很难 你能建议这里有更好的选择吗

Lucene dismax solr请求处理程序MM、PS和Q.ALT

我正在测试Demax requesthandler,我正在尝试自定义mm(最小匹配)参数(我已经看过文档) 21:您的字符串将转换为 1-2 terms: match all terms 3 terms: total number of terms - 2 must match (i.e. 1 term must match :) 4-5 terms: 70% of the terms must match 6+ terms: 50% of the terms must match mm字

让lucene成为像谷歌一样成熟的搜索引擎

我想建立一个像谷歌这样的搜索引擎,如果我输入搜索词,它会检索网站的URL。 我将lucene与tomcat一起使用,但它会搜索驻留在我系统中的文件 我想在网上搜索。请告诉我如何使用lucene? 如果我们不能用lucene做到这一点,请建议替代方案。使用

如何在lucene上添加同义词索引

我有一个同义词表,同义词列表以逗号分隔。我希望Lucene也可以在索引文本值的同时考虑这些同义词。我正在使用StandardAnalyzer进行索引。我怎样才能让Lucene也使用同义词呢?这是我使用StandardAnalyzer的代码 FSDirectory fsDircetory = FSDirectory.open(new File("/home/lenovo/index")); indexwriter = new IndexWriter(fsDircetory, new Sta

Lucene Solr是否支持自定义FunctionQuery?

solr wiki FunctionQuery页面显示solr支持按函数排序 Sort By Function <!> Solr3.1 It is now possible to sort the results by the output of a function. For instance, if an application wanted to sort by distance, it could do: http://localhost:8983/solr/selec

Lucene索引的空间限制是什么?

我将数十亿行添加到Lucene索引中,每行几乎是6000字节。可以添加到Lucene索引的最大行数有限制吗? Lucene索引上6000字节的十亿行将占用多少空间。此大小有限制吗?请参阅Lucene文档了解其大小,其大小不能超过 约2740亿个不同术语 约21亿份文件 对于如此大的数据集,通常最好只使用Lucene进行反向索引,并将文档的实际内容存储在其他地方。您可以预期索引大小约为原始文档集大小的30%(如果这些是常规文档,计算生成的具有大量唯一术语的文档将生成更大的索引)。此部分从文档中

Lucene Neo4j python绑定:查询节点索引以获取一组值

我有一个Neo4j数据库graphDb,其中节点有一个属性“标签”。我有一个Lucene索引“my_nodes”,带有键“label”,它对节点属性“label”的值进行索引。现在我想从可能值列表中检索属性“label”等于值的节点labellist。为了实现这一点,我以以下方式编写了一个密码查询: cypherQ = """START n=node:my_nodes('""" +' OR '.join(['label:'+str(i) for

Lucene:如何限制点击次数?

我有一个网页表单,可以搜索用户上传到网站上的所有照片。问题是Lucene搜索目前正在检索所有符合搜索条件的照片,尽管我们在页面上只显示了21张照片。这会导致严重的性能问题。是否可以将检索到的照片数量限制为21张,以提高性能 我们可以使用eg(category:New)将搜索限制到特定的类别,同样,是否有类似的方法限制点击数?我就是这样做的: 搜索方法将结果数作为参数。我通过页面大小*页面。 所以对于第1页,我只得到页面大小的文档 然后我只加载我需要的页面的文档(使用searcher.doc())

不要使用plucene::simple索引所有字段

我正在寻找plucene来存储大量数据,我对这方面非常陌生。每个数据记录都有一个唯一的ID和3个以上的字段。这些字段有很多文本,但我只希望id是可搜索/索引的,因此当我提供id时,我可以检索其他字段。下面是一段简单的代码示例: my $newIndex = Plucene::Simple->open("data"); $newIndex->add(id1 => {pubmedID => "1223323", title => "a_title", abstract

Lucene阶段查询不区分大小写

我正在写一个查询,以便在“城市”字段上进行精确匹配。字段/属性定义为: @org.hibernate.search.annotations.Field(index = Index.YES, analyze = Analyze.NO, store = Store.NO) private String city; 如果我有“newyork”的值,我想在用户输入“newyork”或case的某些变体时找到匹配项。我正在使用实体的StandardAnalyzer,所以我知道它会将所有标记小写。我不标记

Lucene IndexWriter所做的更改不会反映在IndexReader中

我有一个只读模式的IndexReader,一个基于该阅读器的indexsearch和一个IndexWriter在同一个Lucene索引上工作。我想从索引中删除一个文档。之后,我不希望文档显示在索引搜索器返回的结果中(我想这就是删除的意义所在)。代码如下: _enIndexWriter.DeleteDocuments(query); _enIndexWriter.Commit(); _enIndexReader.Reopen(); _enIndexSearcher = new IndexSearc

elasticsearch 在不等待完成的情况下向ElasticSearch发布更新请求

我有一个ElasticSearch索引来存储文件,有时是非常大的文件。因为每次更新文档时,底层Lucene引擎实际上都在进行完全替换,即使我只是修改一个字段的值,整个文档也需要在后台更新 对于大型、多MB文件,这可能需要相当长的时间(几百毫秒)。因为这是作为web应用程序的一部分完成的,所以这实际上是不可接受的。我现在正在做的是分叉进程,因此在请求完成时,更新在一个单独的线程上调用 这是可行的,但作为一个长期解决方案,我并不十分满意,部分原因是这意味着每次我为搜索引擎创建一个新接口时,我都必须重

Lucene 从记录列表中获取一组字段的不同值

我们正在使用Liferay(6.2 CE GA4)和Lucene对自定义资产执行搜索。目前,我们可以检索正确的点击和完整的文档 我们希望为自定义资产返回特定字段的唯一组合 为了更清楚地说明这一点,我们希望执行类似于以下SQL查询的操作,但在Liferay中使用Lucene: SELECT DISTINCT field01, field02, field03 FROM FieldsTable WHERE someOtherField04 LIKE "%test%"; OR

Lucene 露天最优文件夹结构

我需要在Alfresco上创建文件夹和文档树(4.2 Enterprise Edition和SOLR用于索引)。我的树将有超过200万个文档。我的想法是在“用户主页”空间中创建一个主文件夹“My_REPO”。“MY_REPO”将有5000个子文件夹(每个子文件夹由使用我的应用程序的用户创建)。每个用户都可以使用支持java的WebScript来组织内部的子文件夹,这些WebScript创建节点并上载文档 我的应用程序有两部分:一部分允许在这些文件夹中导航,查看每个节点的文档和自定义属性,以及在所

lucene对给定文档(例如docid)评分

也许这是一个简单的问题。。。我想知道如何使用lucene为给定的文档(例如docid)评分,而不是执行搜索,因为我知道要为哪个文档评分。获得一个评分可能是一种方法。它的getValue()将返回分数: Explanation explain = indexSearcher.explain(myQuery, docNo); float theScore = explain.getValue(); (您还可以从解释.toString())中获得许多其他有关如何计算分数的信息。您好,非常感谢。你建议

使用lucene有条件地为不同的用户搜索不同的数据

考虑到我需要执行文本搜索的实体如下 Sample{ int ID, //Unique ID string Name,//Searchable field string Description //Searchable field } 现在,我有几个这样的实体,这些实体通常由所有用户共享,但每个用户都可以将不同的标签、注释等关联到这些实体中的任何一个。为了简单起见,假设用户可以向示例实体添加标记 UserSampleData{ int ID, //Sample I

不从Lucene索引获取Droplist和TreeList类型字段的值

我正在使用Sitecore 7.2。我创建了一个自定义Lucene索引 虽然我能够获取类型为单行文本、富文本和日期时间的字段值,但我无法获取类型为滴列表和树列表的字段值 我曾尝试将这些字段的索引类型更改为“unkenised”,但仍然会遇到这个问题。我还使用Luke检查了我的索引,发现只有Title、Summary和Body字段是索引的一部分 下面是我定义字段的索引配置部分产品和类型分别是Treelist和Droplist字段 <fieldMap type="Sitecore.Conten

Lucene查询将比较两个字段的位置

我有一个elasticsearch集群。群集中的所有文档都具有相同的索引和类型。每个文档有两个数字字段->字段1和字段2 我想在Grafana中显示所有文档,其中字段1的值>字段2的值 是否存在如下查询: document_type:test AND field1 > field2 ? 据我所知,使用elasticsearch(lucene)无法执行此类查询。它确实支持范围查询,但不支持文档中不同字段之间的比较。您可以使用(groovy)执行此操作,如下所示: { “查询”:{ “期限”

Lucene不为文档中的某些术语编制索引

我一直在尝试使用Lucene为我们的代码数据库编制索引。不幸的是,索引中遗漏了一些术语。例如,在下面的字符串中,我可以搜索除“版本号”以外的任何内容: 我尝试用Lucene.NET 3.1和pylucene 6.2.0实现它,结果是一样的 以下是我在Lucene.NET中实现的一些详细信息: using (var writer = new IndexWriter(FSDirectory.Open(INDEX_DIR), new CustomAnalyzer(), true, IndexWrite

如何在lucene.net中基于时间戳而不是位置索引术语

我正在尝试为Lucene.net 4.8中的语音文本编制索引,并希望根据时间戳(识别术语的那一刻)搜索术语。我用json将这些数据结构化。我的挑战是如何使用类似“Term1和Term2在/~5秒内”这样的查询来搜索术语。我曾想过为此使用邻近查询(SpanQuery)和自定义标记器,但据我所知,SpanQuery是基于文本位置的。因此,这种方法对于这项任务不是很有用 在Lucene或任何其他FT图书馆中,有人对如何解决这一问题有什么好的建议/指导吗 非常感谢您的帮助。我认为您将演讲转换为纯文本,然

elasticsearch 编辑ElasticSearch 7.3的状态文件

我的集群中有一个ElasticNode 7.3.2,它已崩溃,此后无法重新启动,但仍然包含重要数据(最后一个副本在此节点上) 原因:java.io.IOException:未能找到现有索引indexname-2019.06.23的元数据[位置:ORVU14kLSf6kIv8ULliijA,生成:178] 我不在乎这个特殊的索引,我能从州文件中删除这个吗?我已经尝试通过HexEditor将其删除,但他随后抱怨说它们不是有效的哈希校验和;) 我已经尝试通过SMILE对其进行解码,但*.st文件似乎只

Lucene忽略/覆盖QueryParser中的模糊编辑距离

给定以下查询字符串中带有FuzzySearch术语的QueryParser: fun fuzzyquery() { val query = QueryParser("term", GermanAnalyzer()).parse("field:search~4") println(query) } 结果查询实际上将具有以下表示形式: field:search~2 因此,~4被重写为~2。我将代码追溯到以下实现: QueryParserBa

上一页 1 2 ...  23   24   25   26    27   28   29  ... 下一页 最后一页 共 78 页