在Lucene中为文档编制索引时增加特定术语(例如标题)的权重

我有一些文档,我正在与Lucene建立索引。这些文档基本上有标题(文本)和正文(文本)。目前,我正在用LuceneDocuments创建一个索引,其中包括一个可搜索字段,基本上是title+“”+body。这样,如果您搜索标题或正文中出现的任何内容,您将找到文档 但是,现在我了解到了一个新的要求,即标题中的匹配项应使文档比正文中的匹配项“更相关”。因此,如果有一个标题为“软件设计”的文档,并且用户搜索“软件设计”,那么该文档在搜索结果中的位置应高于一个名为“其他”的文档,该文档在正文中大量提及软

Lucene Solr服务器端查询预处理

我希望solr进行模糊搜索,并将查询作为子词查找。应优先选择匹配的完整单词 这适用于以下查询: http://localhost:8983/solr/select?qt=my_qt&q=myword http://localhost:8983/solr/select?qt=my_qt&q=*myword*~0.8+myword~0.8 � 是否有可能删除请求中的所有通配符和模糊参数 我希望配置solr a way,以便它在接收以下查询时执行与上述查询相同的搜索: http://loca

Lucene中的否定查询问题

看看这个查询: -HOSTNAME:ram AND SEVERITY:information 上面的查询没有给出预期的结果。我知道我们需要将*:*附加到一个完全否定的查询中,我还发现,通过将*:*附加到主机名搜索条件中,可以解决上述问题,但这可能会造成严重的性能问题,因为我的应用程序直接从最终用户获取搜索查询 请告诉我如何着手并帮助我找到最佳解决方案 您的查询应该可以正常运行,但是,仅包含否定项不起作用: -HOSTNAME:ram AND -SEVERITY:ERROR 因为没有什么可以减

显示Lucene/Elasticsearch索引的字段

有没有办法让Lucene/Elasticsearch只显示在给定索引中索引了哪些字段?我正在试图确定某些字段是否由于配置选项而被正确索引,但我不知道如何确定。您可以通过调用来检查特定索引和类型的映射: http://localhost:9200/index/type/_mapping 任何索引的内容都应该有一个条目。另请参见分析API,以了解文本是如何分解为术语的

为什么Lucene QueryParser需要分析仪

我是Lucene新手,尝试使用QueryParser将原始字符串解析为Query 我想知道,为什么QueryParser.Parse()方法需要一个Analyzer参数 如果分析与查询有关,那么在处理常规的Query对象(TermQuery,BooleanQuery等)时,也应该指定Analyzer,如果不是,为什么QueryParser需要它?索引时,Lucene将文本划分为原子单位(标记)。在此阶段可能会发生许多事情(例如,小写、词干、删除停止字等)。最终结果是一个术语 然后,当您进行查询时

使用pylucene索引文档时出错

我想索引一些文件并从中检索一些信息 我使用python中的这段代码为文档编制索引: import sys ; import lucene ; from java.io import File ; from org.apache.lucene.analysis.standard import StandardAnalyzer ; from org.apache.lucene.document import Document, Field ; from org.apache.lucene.inde

以xmlparser格式编写lucene查询

当我使用query.toString()编写查询时,它的字符串表示形式为QueryParser可读的格式,类似 +value:trump +value:president +score:[0 TO 20] <BooleanQuery> <Clause fieldName="value" occurs="must"> <TermQuery>trump</TermQuery> </Clause> <Clause

Lucene如何计算多场分数?

以下是Lucene评分公式: 分数(q,d)=坐标(q,d)·查询范式(q)·∑ (tf(t在d中)·idf(t)2·t.getBoost()·norm(t,d)) 多场得分呢 分数是直接求和还是求平均,还是….?这取决于操作。如果你正在做一个OR(姓名:bill或性别:male),则取二者中的最大值。如果您正在进行AND运算,它将进行求和。这取决于运算。如果你正在做一个OR(姓名:bill或性别:male),则取二者中的最大值。如果你在做AND,它将做一个总和。你可以在课堂上阅读评分的详细信

Lucene 是否有任何推荐的IndexSearcher方法?

我正在基于web的应用程序中使用Lucene搜索API。 建议使用Lucene的IndexSearcher类中的哪种方法?有任何方法比其他方法更快吗 1.索引搜索器(目录) 2.索引搜索器(索引阅读器r) 3.索引搜索器(字符串路径) 感谢阅读。内部接受目录和路径索引的构造函数使用accpets IndexReader的构造函数。因此,其中一个没有性能优势。请记住,如果使用IndexReader创建searcher,则必须在关闭searcher后显式关闭阅读器 都是为了方便 如果只想创建索引搜索

Lucene中的ConstantCorerangeQuery

Lucene怎么会比老的好 在什么情况下,您应该继续使用RangeQuery?根据链接中的RangeQuery文档, ConstantCoreRange查询: 比RangeQuery快 如果值的范围较大,则不会导致BooleanQuery.ToomAnyCauses异常 不影响基于可能匹配的单个术语的稀缺性的评分 假设您对较短的时间段的评分较高感兴趣(假设您正在寻找一个小时范围,但希望较短的时间段的评分较高-可能您正在寻找一天中“缓慢”的时间来运行备份过程)。在这种情况下,较旧的RangeQ

如何进行lucene FileDiRecordy索引的在线热备份?

我正在考虑添加JMXbean,以便对lucene索引进行热备份 LuceneMBean mbean=新LuceneMBeanImpl; ObjectName=newObjectNameIndexing.index:type=lucene; MBeanServer mbs=ManagementFactory.getPlatformMBeanServer; mbs.registerMBeanmbean,名称 Lucembean将有一个名为backupIndexString目录的方法 我查阅了luce

Lucene/Solr如何在多领域/多方面搜索中实现高性能?

上下文 这是一个主要关于Lucene(或者可能是Solr)内部的问题。主要主题是分面搜索,其中搜索可以沿着对象的多个独立维度(分面)(例如大小、速度、汽车价格)进行 当使用关系数据库实现时,对于大量的facet,多字段索引没有用处,因为facet可以按任何顺序搜索,因此使用特定的有序多索引的几率很低,并且创建所有可能的索引顺序是无法忍受的 Solr被宣传为能够很好地处理分面搜索任务,如果我认为正确的话,它必须与Lucene(据说)联系起来,Lucene在多字段查询中表现良好(文档的字段与对象的分

Lucene 基于负载的数据处理

我正在建立一个基于ApacheLucene的搜索引擎服务,但我希望所有的索引和页面排名处理都能在服务器负载减少后进行,因为它也会运行其他服务。到那时,我将暂时存储要编制索引的数据。所以基本上我必须弄清楚什么时候负载低于某个水平?我有什么办法可以做到这一点吗???您是否在问如何跟踪每秒的查询?(或每分钟等)是的…就像我的服务器将处理网站或数据存储,或者两者兼而有之…重点是我想以最有效的方式使用我的服务器资源…所以这样做是一个好主意吗?因为我知道的方法也需要大量的服务器资源。。。

Lucene中文分析器.NET

Java有两个中文分析器,一个是SEN,我想知道是否有人知道.NET的中文分析器?它在contrib项目中,都有.NET版本。谢谢链接。我不知道它的存在。我正在用Sitecore的Lucene indexer实现这一点,但它似乎陷入了一个循环,无法完成。我假设代码已经过测试。我注意到一些待办事项的评论。不幸的是,我不确定-你有没有运气?

带有布尔运算符的奇怪Solr/Lucene行为

我在Solr/Lucene查询语法中遇到了使用-运算符的奇怪行为。 如果我执行查询 -text AND -text 我得到了所有预期的结果(很多),但如果我加上一些括号 -text AND (-text) 或 然后我就什么结果也没有了。我不明白为什么。 你对这种行为有什么解释吗 提前感谢。解释取决于您使用的搜索处理程序和整个查询字符串 例如:您可以搜索多个字段,如 text和text这个问题在英语中得到了很好的回答 . 他们还在官方FAQ中添加了一条条目,内容如下: 布尔查询必须至少有一

Lucene:如何获得文档的分数

我想输出文档的分数。我为此编写的代码是: IndexReader reader = IndexReader.open(FSDirectory.open(indexDir)); IndexSearcher searcher = new IndexSearcher(reader); Analyzer analyzer = new IKAnalyzer(); QueryParser parser = new QueryParser(Version.LUCENE_31, "title",

如何使用Lucene查询包含日期的ravendb索引?

我使用http api查询ravendb(因此LINQ查询不是我问题的解决方案)。 我的产品文档如下所示: { "editDate": "2012-08-29T15:00:00.846Z" } 我有索引: from doc in docs.Product select new { doc.editDate } 我想查询特定日期和时间之前的所有文档。我可以使用以下语法查询日期: editDate: [NULL TO 2012-09-17] 但是,我也不知道如何查询时间组件。 有什么想法吗

Lucene:TermQuery与SpanTermQuery

TermQuery和SpanTermQuery之间似乎没有任何功能上的区别。还有其他的区别吗,比如在搜索性能方面?我想知道,即使差别很小 如果有区别的话,我使用的是Lucene.Net 2.9.4g。如果您不需要Spans搜索API中的功能,则没有功能上的区别。例如,如果要使用spanarquery/SpanOrQuery//SpanNotQuery等,则需要对子句使用SpanTermQuery,但如果不使用span API,则不需要它 使用有效载荷时,跨度也非常方便 这两个类的性能应该是相同的

Lucene 执行自定义分数查询时键入强制转换异常

ElasticSearch版本:0.90.2 我正试图让自定义评分查询工作,以便它按最近情况对文档进行评分,但到目前为止,我只得到了一个 ClassCastException[org.elasticsearch.index.fielddata.ScriptDocValues$Longs cannot be cast to java.lang.Integer] 其思想是使用具有整数类型时间戳的字段索引文档,然后通过查询中的当前时间戳参数对其进行比较。 为什么索引的整数值变长了 以下是要复制的命令

Lucene 弹性搜索词干生成

在一个字段上,我想设置一个自定义分析器,它有自定义的过滤器,重点是词干分析,所以“闪存卡”和“闪存卡”被词干分析到相同的根,所以返回相同的结果 当我运行以下查询时,我得到了命中率(很好),但“闪存卡”和“闪存卡”各自返回不同的结果: {"query_string": { "fields": ["description"], "query": query } } 但当我运行以下查询时,没有得到任何结果: {"query_string": { "fields

OrientDB Lucene“内部”边界框搜索

我在数据库中使用OrientDB Lucene空间索引,希望使用边界框搜索,但我想知道参数内是如何工作的 来自Lucene OrientDB的Eg 从[51.507222,-0.1275],[55.507222,-0.1275]]内的[纬度,经度]位置选择* 它如何在这两个latlng参数内计算边界框?当它们具有相同的经度时 请提供建议,谢谢查看他们的代码后,我发现他们正在构建边界框。其中,他们仅采用2个latlng参数来构建边界框,即西南第一个参数和东北第二个参数。 他们将图书馆用作他们的地理

elasticsearch 就elasticsearch的性能而言,哪种方法是创建类型的最佳方法

我有一个RDBMS表,它有多个列,并且是异构的,需要在elasticsearch中从这些表创建索引。那么,哪一个是elasticsearch中创建类型的最佳实践界面呢。我在考虑多重选择 1创建与rdbms表相同的类型,并添加与表中记录相同的文档 2创建一个具有两个文件的类型,其中一个用于标识该文档的字段和另一个字段将是表、列和值的串联。因此,通过这种方式,所有表中只有两个文件,并在一个字段上搜索 那么你能告诉我,哪种方法是创建类型的最好方法。如果需要更多信息,请告诉我。以最方便您的搜索要求的形式

elasticsearch 对未编制索引的字段执行elasticsearch更新操作

如果我更新文档中映射为未索引的字段,ES是否仍会重新索引整个文档?如果是,是因为_源需要重新编制索引吗?是否可以不索引_source?,只存储。是的,ES将重新索引文档,因为这是更新文档的唯一方式:创建新文档,删除旧文档 这是ES中的一个基本原则:Lucene段(磁盘上的文件)仅被删除(通过合并)或添加

Lucene Elasticsearch使用了太多的服务器资源

我在我的服务器上安装了elastisearch,其大小大约为10GB,我有16GB的RAM和1TB的空间。但关于elasticsearch,仍然有一些奇怪的问题我无法理解 我将10GB的ram专用于elasticsearch,但当发生大量插入操作时,我的碎片会下降并显示内存不足错误 随机elasticsearch统计使用我的服务器的最大资源,如下所示,结果服务器性能几乎没有变化 你的索引的大小是多少?我的elasticsearch的总大小约为10GB,我有许多索引,但只有一个索引有大量的条

elasticsearch 带分数的Elasticsearch过滤器?

我已经为Elasticsearch(1.7.3)建立了一个大人物索引 我正在尝试搜索个人信息(数千万)。Person的性别(即“M”或“F”)是Person文档中的许多字段之一 当我使用匹配查询进行搜索时,它需要花费很长时间(我猜它需要整理大量的帖子列表?),因为可能至少有一百万个性别。这是一个有效的观察结果吗 我正在进行匹配查询,因为我想要分数 { "explain": true, "from": 0, "size": 10, "query": { "filtered"

elasticsearch 如何为快速变化的数据构建Elasticsearch索引?

我的MySQL数据库中有两个模型:Users和Posts 用户具有地理位置属性(lat/long) posts只是有一个文本体 我想使用Elasticsearch查找所有匹配字符串的帖子加上使用用户的位置作为过滤器。问题是——用户的位置总是在变化(当人们在城市里走动时)。我将经常更新每个用户的lat/long 这是我当前的解决方案: 为帖子编制索引,并在每个帖子中都有一个地理位置属性 文件。当用户更改位置时,运行elasticsearch批处理 更新该用户的所有帖子,并修改“地理位置”属性 在那

使用lucene识别公共数据

假设我有一个允许用户管理客户档案的系统。客户配置文件可能包括以下字段 名字 姓氏 城市 陈述 拉链 出生日期 雇主 对于给定地理位置的用户来说,城市的选择通常是一组4-5个本地城市。我正在尝试保存用户,避免其进入同一个城市或来自同一组4-5个城市的城市 在lucene中,是否可能在给定过去数据的情况下,lucene识别出一组常见的城市,并自动向用户提供一个列表供选择 我想把同样的逻辑应用到其他领域,比如雇主。如果。该市有2-3家大雇主,如果前3家雇主中有一家,那么新客户很有可能为其中一家工作 所

如何使用lucene PointRangeQueryBuilder创建查询

我想通过编程在lucene字段上创建一个RangeQuery。 我找到了PointRangeQueryBuilder,但没有找到如何在Java代码块中使用它的任何示例。 有谁能给我一个提示(代码示例)或一个指向某个示例的指针吗?xml queryParser使用该类。关于如何使用该queryParser的示例,lucene在演示它时附带了org.apache.lucene.demo.xmlparser 要简单地针对两个PointValue创建一个范围查询,可以按如下方式执行: Query Que

Apache Lucene 5.5.3-搜索以特殊字符结尾的字符串

我正在使用ApacheLucene5.5.3。我在代码中使用了org.apache.lucene.analysis.standard.StandardAnalyzer,并使用下面的代码片段创建索引 Document doc = new Document(); doc.add(new TextField("userName", getUserName(), Field.Store.YES)); 现在,如果我搜索字符串“ALL-”,那么我不会得到任何搜索结果,但是如果我搜索字符串“ALL Cat

elasticsearch 弹性搜索2.4升级

Elastic Search 2.4会在Lucene 4.10.3上运行吗?还是我也需要升级到Lucene 5.5.2?正如Nikhil Bhide所评论的,拥有不同版本的依赖JAR文件通常会导致意外行为和不稳定性。好的做法是将它们全部更新为用于编译ES JAR文件的版本 ES 2.4.0 JAR文件使用Lucene 5.5.2的以下软件包: lucene岩芯 lucene反向编解码器 lucene分析仪通用 lucene查询 lucene存储器 lucene荧光灯 卢克尼探险家 lucene

更像Lucene.NET3.0.3中的这一特性被读取超过了EOF

我编写了这个简单的代码来查找具有文档id的类似文档 using (IndexReader indexReader = IndexReader.Open(FSDirectory.Open(new DirectoryInfo(LuceneDir)), true)) { MoreLikeThis mlt = new MoreLikeThis(indexReader); mlt.SetFieldNames(new String[] { "Id", "Title", "Details" })

elasticsearch 文档值中的Elasticsearch/Lucene null处理

我计划主要使用Elasticsearch进行数据分析。我有一个很大的文档,它有很多数字属性(最多4个字节)。我文档中的大多数字段中只有大约30%的值。如果我理解正确,我可以利用docvalues特性,它类似于某些数据库中的列数据布局。我想知道Elasticsearch/Lucene将如何存储这些数据。是否使用任何压缩(例如运行长度)或密集数据布局,其中空值将占用与值相同的存储空间?ElasticSearch的默认行为是在NULL值的情况下根本不添加字段。您可以使用null\u value强制映射

elasticsearch Elastic/Lucene用于beyond计分的标准是什么?

我不会在我运行的搜索中使用评分。我确实使用排序,但当然是按日期和其他字段。我在考虑关闭规范存储、计算等功能,但我还没有找到一个能够描述规范所有用法的答案 除了评分,elastic/lucene使用的标准是什么?当您不使用标准进行评分时,可以将其关闭 发件人: 你不需要在一个特定的领域得分,你应该禁用该领域的规范。尤其是,仅用于筛选或聚合的字段

在lucene中使用通配符搜索多词短语

使用以下代码块: public void MultiField(string fieldValue, string[] fieldList) { List<Occur> occurs = new List<Occur>(); foreach (string field in fieldList) { occurs.Add(Occur.SHOULD); } Mu

在Lucene 4.8.0中,SearchManager.MaybeRefresh或DirectoryReader.openIfchange()不起作用

当我对索引做一些修改时。从表面上看,索引文件结构没有改变。但事实上,该指数确实发生了变化。这是因为当索引发生重大变化时,索引文件结构可能会发生变化 然后SearchManager、MaybeRefresh或DirectoryReader.openIfchange无法工作。它返回旧的indexsearch。是否必须更改索引文件结构以便它们可以工作?这不是问题。很抱歉我犯了一个错误

Lucene 如何返回索引中命中的查询项

我试图返回在我的Lucene索引中引起点击的原始术语。例如,我的搜索字符串是“敏捷的棕色狐狸跳过懒惰的狗”。“狗”一词在索引中有“狗带”和“遛狗”之类的词条。同样,《狐狸》也有像《狐狸手套》和《狐狸洛西》这样的热门歌曲 因此,我想为用户打印出原始的“QuickBrownFox”字符串,其中突出显示了点击(dog和fox)的术语。下面是几个使用解释方法的例子,但是答案没有提到最后一步。 我认为Lucene不会轻易做到这一点,我将不得不使用正则表达式 我想出了一种方法来生成一个字符串,该字符串是带有

Lucene Jackrabbit Oak Lucine索引和SQL2查询,用于txt和pdf格式的全文搜索

我尝试使用Oak版本1.16.0在文件内容中实现全文搜索 试图创建索引,就像Oak文档中所说的那样,对所有属性进行索引 /oak:index/assetType - jcr:primaryType = "oak:QueryIndexDefinition" - type = "lucene" - compatVersion = 2 - async = "async" + indexRules - jcr:primaryType = "nt:unstructured"

Lucene 使用hibernate搜索以单词开头或以单词结尾

我正在使用带spring boot的Hibernate搜索。我有一项要求,用户将有搜索操作员对机构名称执行以下操作: 以一个词开头 .Ali-->表示短语应严格以Ali开头,这意味着AlAli不应在结果中返回 未按上述要求返回包含期中、期初或期末的混合结果 以一个词结尾 卡姆兰。-->意味着它应该严格地结束Kamran,这意味着Kamranullah不应该在结果中返回 根据文档,将“*”放在开头不是一个好主意。我的问题是:我怎样才能达到预期的结果 我的域类和分析器: @AnalyzerDef(

Lucene 在Solr中,NOT和-(负)运算符之间有什么区别?

在Solr中,NOT和-(负)操作符之间有区别吗?如果是,是什么 Solr文档引用了,在这个问题上是模糊的。这两个操作符的作用方式似乎相同,但并不清楚。在Mauricio的答案上展开。(因为QueryParser类是我读过的最令人困惑的代码之一),如果您查看第145-152行,您将看到: case MINUS: jj_consume_token(MINUS); ret = MOD_NOT; break; case NOT: jj_cons

Lucene 使用Solr进行成本比较

我计划建立类似pricegrabber.com/google产品搜索的东西 假设我已经在一个巨大的表中有了可用的数据。我打算把这些都交给Solr。这就解决了搜索问题。然而,我不知道如何做比较。我可以对数据库上Solr返回的产品进行分组查询(在UPC/SKU上)。然而,我不想那样做。我想以某种方式从Solr本身获取返回给我的产品比较数据以及搜索结果 你认为我的模式应该是怎样的?您认为这个用例可以通过Solr/Sphinx解决吗?您需要“结果分组”或“字段折叠”支持来正确处理它 在Solr中,该功能

在lucene.net中查找字段的所有可用值

如果我有一个字段x,它可以包含一个值y或z等,那么有没有一种方法可以查询,以便只返回已索引的值 范例 x可用可设置值=test1、test2、test3、test4 项目1:字段x=test1 项目2:字段x=test2 项目3:字段x=test4 第4项:字段x=test1 执行所需查询将返回以下列表: test1、test2、test4我认为通配符查询搜索字段“x”和值“*”就可以了。如果字段被索引为字符串,或者使用关键字标记器索引而没有过滤器,则可以使用facets返回字段的前N个值。这意

基于Lucene的交叉查询

使用Zned Lucene,当我搜索field1:value1时,返回了1000个点击。 当我搜索字段2:value2时,返回的点击数为0。 当我搜索field1:value1和field2:value2时,我返回了1000个点击,但我更希望返回0个点击 为什么它不做查询的交集呢?我找到了解决方案。实际上,通过使用zend lucene API,它可以很好地工作: $query=new Zend_Search_Lucene_Search_query_multi term(); $query->a

使用Lucene ShingleFilter提取Lucene中的Bigram频率

如果可以使用Lucene木瓦过滤器将字符串标记为不同大小的木瓦或ngrams,例如: "please divide this sentence into shingles" 变成: shingles "please divide", "divide this", "this sentence", "sentence into", and "into shingles" 是否有人知道这是否可以与其他分析仪一起使用,以返回所发现的双元图或三元图的频率,例如: "please divide thi

Lucene 如何在以实体为中心的搜索引擎中进行关系抽取?

我正在构建一个以实体为中心的搜索引擎。以下是我迄今为止所做的工作 使用斯坦福命名实体识别器识别文档中的所有实体,如人员、电子邮件id等 使用Lucene索引器(如“Barack Obama”)构建了一个基于实体的索引表,字段名为“PERSON”,也使用基于关键字的索引 现在,我需要在这些实体之间建立关系。例如,如果问题类似于“奥巴马的妻子”,我需要向米歇尔·奥巴马解决这个问题。我希望两个实体“巴拉克·奥巴马”和“米歇尔·奥巴马”通过关系“配偶”联系起来。我参考了几篇关于关系提取的论文,但都是

Lucene Azure搜索中的模糊搜索和邻近搜索

需要有关在Azure中结合邻近搜索和模糊搜索的查询帮助。索引包括以下项目: 华盛顿大学 玛丽华盛顿大学基金会 华盛顿基督复临安息日会大学 搜索词: 华盛顿大学-(大学拼写错误) 这将返回记录1。i、 e大学的模糊匹配和其余单词的近似匹配。来自Azure搜索文档: 要进行模糊搜索,请在单个单词末尾使用波浪号“~”符号,并使用可选参数,该参数是一个介于0和2之间的数字(默认值),用于指定编辑距离。例如,“blue~”或“blue~1”将返回“blue”、“blues”和“glue” 在短语末尾插

elasticsearch Lucene中的ES匹配查询模拟

我使用这样的查询在ES中运行: boolQuery.must(QueryBuilders.matchQuery("field", value).minimumShouldMatch("50%")) Lucene中这个查询的直接类比是什么?据我所知,匹配查询基本上是分析查询,并用分析器找到的所有术语创建布尔查询。您只需通过QueryParser传递文本,就可以接近 但你可以复制它如下: 公共静态查询makeMatchQuery(字符串字段名,字符串值)抛出IOException{ //让生成器开

Lucene tim文件大小减少

我有lucene索引(不是很小,大约20gb),我注意到.tim文件大约是16GB。我知道这是一本术语词典,有没有办法缩小它的尺寸,甚至完全摆脱它?如果有,如果我这样做,我会失去什么 谢谢

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 78 页