Apaches Solr搜索引擎是否提供近似字符串匹配,例如通过Levenshtein算法
我正在寻找一种按姓氏查找客户的方法。但是我不能保证名字的正确性。如何配置Solr,使其能够找到此人
“Levenshtein”即使我搜索“Levenshtein”?通常这是通过来完成的,默认情况下,它在内部使用实现Levenshtein的
这篇文章很好地解释了它是如何工作的,如何配置它以及有哪些可用的选项,没有必要在这里重复
或者你可以用它
另一种选择是使用a而不是Levenshtein。毛里西奥的回答很
我正在为Lucene.Net数据库中的一行数据编制索引。行相当于文档
我想用DocId更新我的数据库,这样我就可以在结果中使用DocId来快速检索行
我目前首先从结果文档中检索PK,我认为这应该比使用DocId直接从数据库中检索PK要慢
在向Lucene添加文档时,如何找到文档ID?依赖Lucene的文档ID是一个糟糕的策略,因为即使Lucene也试图避免这种情况。我建议您创建自己的DocId。在数据库中,我将使用一个。如果应用程序不使用关系数据库,则可以通过编程方式创建此类字段。除此之外,我建
我创建了一个lucene索引,并用bz2或zip压缩了索引目录。我不想把它解压缩。是否有任何API调用可以从这个压缩目录读取索引,从而允许搜索和其他功能。也就是说,lucence IndexReader可以从压缩文件中读取索引
我看到Lucnene IndexReader不支持“Reader”来打开索引,否则我会创建一个Reader类来解压缩文件并流式处理未压缩的版本
任何替代方案都是受欢迎的
谢谢,
Akhil有一些虚拟文件系统实现,允许您将ZIP/GZ文件装载为磁盘。一个例子是fuse-zi
我试图用语料库建立一个邻接列表。我正在考虑使用Map Reduce,因为事实证明,内存解决方案非常昂贵。我认为工作的顺序要求我从一个倒排索引开始,然后有一个map工作作为输入,然后计算相似性。我并不特别想经历建立自己的反向索引的痛苦——我想使用一个看起来相当容易生成的Lucene索引。但是,我不太清楚如何使用Lucene索引并生成Hadoop中可以使用的映射对?有人能澄清一下怎么做吗?您需要做的是使用IndexReader.terms()枚举术语,IndexReader.docFreq(Term
是否可以在spring-data-neo4j中自定义lucene索引,以便我的索引将使用自定义分析器?特别是,我想使用PerfielDanalyzerRapper分析器,以便能够在同一索引中使用精确字段和全文字段。
我看到一篇关于它的帖子,但它与本地neo4j有关
谢谢。这是一个老问题,但人们可能仍然感兴趣:
我们目前正在嵌入式Neo4j项目中使用lucene PerfielDanalyzerRapper分析仪。我们的兴趣是柠檬化。
另见
我们运行的是Neo4j 2.2.8,但不幸的是,我很难用
在lucene中,对于更快的搜索,最好的索引分区策略是什么
更少的索引分区比许多索引分区更好,搜索速度更快吗?首先,我认为强调分区和分片之间的区别很重要
据我所知,Lucene中的分区意味着有多个索引(单独的IndexReaders/IndexWriters/Directory实例),但所有索引都将在同一个JVM下运行
分片意味着上面提到的一切加上独立的JVM(如果您是磁盘绑定的,在不同的磁盘上放置索引也是有意义的)
无论如何,这个问题没有简单的答案,但以下是一些基本要点:
专业人士:
更快的
我使用以下方法根据提供的查询返回搜索结果
private List GetResults(QueryBase qBase)
{
使用(IndexSearchContext sc=SearchManager.GetIndex(“故事”).CreateSearchContext())
{
var hits=sc.Search(qBase,int.MaxValue);
var h1=hits.FetchResults(0,25);
var h2=h1.Select(r=>r.GetObject());
我在编写查询以选择项的后代具有某些属性的项时遇到一些问题。我正在使用Sitecore 7
我想选择带有平面图标的项目,其中任何绿色复选项目的属性X的值为Y
我需要做些特别的事情来给孩子们编制索引吗?
我的查询尝试是:
var master = Sitecore.ContentSearch.ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = master.CreateSearchContext(
我想在Lucene中做一个突出显示,在突出显示的单词旁边,它还返回其上下文,该上下文由围绕搜索词的一定数量的单词组成。例如,如果一个文档的内容是quick brown fox跳过懒狗,搜索的单词是fox,所需的周围单词数是2,那么结果应该是这样的quick brown fox跳过参见Lucene的,Lucene的Highlighter API仅为返回片段的大小提供选项,以字符数而不是所需的字数来度量:setMaxDocCharsToAnalyze(int-maxDocCharsToAnalyze
我正在升级和测试一个大型安装,遇到了一个我无法理解的问题。我有一个很大的文档集合,其中我的索引创建如下:
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/1999/xlink">
<fulltext defaul
是否有类似Luke的工具可以使用lucene.NET api在C#中查看lucene索引?为什么不能使用Luke的Java版本?它应该与Lucene.NET生成的索引兼容如果我可以对帖子发表评论,我会在这里发表,但是
Bajafresh是正确的-您可以使用Luke的Java版本,使用Lucene.net在C#中构建索引。去年我在一份工作中使用了这种方法,没有遇到任何问题。甚至把Luke放在我的项目经理的桌面上,这样她就能感受到“新”技术。我意识到这是一个老问题。现在有另一种选择。Luke.NET
如果运行搜索:“+house+car”并返回5343562个点击
这是我拥有的文件的确切数量,还是近似值
如果是近似值,是否有方法返回符合搜索查询条件的文档提取数?这是精确的。是什么让你认为这是一个近似值?你的老板的车和房子比5343562多吗。他应该是对的
Solr1.4非常新-看起来确实非常强大。然而,当我试图按照相关性(分数)和评分值(每个结果的评分为0到5星)的顺序返回搜索结果时,我被卡住了
我尝试过通过“rating desc,score desc”来排序搜索结果,虽然这样做有效,但感觉有点基本
最后,我想根据搜索结果被评为(0到5)的星星数来提高搜索结果的相关性。因此,5星级的成绩应该会带来最大的提升
我确实尝试过添加“rating_value:1^0.1 rating_value:2^0.2”等,但这似乎极大地提高了没有关键词匹配但有高
我被卡住了。我正在使用阅读器提取文档的内容,我想在搜索时突出显示它。
我该怎么做?
有人能出示一些代码吗
谢谢。柠檬,请查看和。请注意,这是高度依赖于版本的,因此您可能需要将其调整到您的Lucene版本
BTW,有更简单的强调——如果你没有在Lucene上投入很多时间和精力,你可以考虑切换到SoR.< /P> LeMeOS,请参阅。请注意,这是高度依赖于版本的,因此您可能需要将其调整到您的Lucene版本
BTW,有更简单的高亮显示——如果你没有在Lucene上投入很多时间和精力,你可以考虑切
Lucene可以处理受干扰的infinispan缓存。我想知道基于hadoop从lucene+infinispan迁移到Katta的时机是什么?什么时候使用Katta和Lucene+infinispan更有效?我读到hadoop不适合实时系统,但是Katta呢?您的要求是什么?我估计,在SO上,99%要求使用超可伸缩Lucene的人会发现Solr(甚至是开箱即用的Lucene)远远不能满足他们的需求
如果你是少数每秒查询数PB数据的人之一,LinkedIn会使用基于Lucene+Hadoop的解
如何根据长度排除某些术语?例如,索引项不能少于3个字母或超过20个字母。也不包括以数字开头的单词
谢谢,您可以编写一个自定义令牌筛选器来完成这一切。请参阅更多详细信息。StandardAnalyzer有一个可以设置的maxTokenLength属性,我认为它已经消除了以数字开头的令牌。但是,如果您有更具体的需求,则需要制作自己的Analyzer,可能还需要制作TokenFilter。与Lucene的文档相反,实现这些类并不“简单”,因为标记化过程的最高性能要求导致了不寻常的编码模式。例如,无法通
目前,我正在构建一个搜索工具,作为一个项目,我将索引从多个数据库表创建的对象(即人员和他们所做的事情)。我想知道除了创建对应于每个人/事物组合的对象(每个都有数千个)之外,是否还有更好的方法来实现这一点
例如,为Person 1所做的所有N件事情创建一个与Person 1-事情1对应的对象,以及另一个与Person 1-事情2对应的对象。然后,为该对象集合编制索引。然后对Person 2执行相同的操作。如果不想对记录进行非规范化,可以使用Join功能。首先看一看。性能可能比非规范化更差,但可能已
到目前为止,我一直在使用查询语法测试我在Sitecore中输入的关键字,但搜索结果并没有将页面排在第一位
例如,如果我将查询语法放在单词book上…(标题:book)^1
我想索引页,即姓名簿出现在搜索结果的第一位,而不是书签
此外,每次我在Sitecore中发布新页面时,Book get的关键字会向下推到最后一个结果,或者不会出现在搜索页面中
如何在Lucene中获得搜索引擎页面的准确结果
此外,我一直在关注如何增加搜索结果,但它不起作用
有人能解释一下这个搜索词是如何起作用的吗。我建议你利用
我想随机抽取术语,按照原文中的方式分发。换句话说,如果单词“大象”在所有索引文档中出现的频率是单词“河马”的两倍,那么它在我的随机抽取中出现的频率应该是两倍。这应该以有效的方式进行
在我看来,索引可能不是这方面的理想数据结构,但它很诱人:它包含所有术语及其频率。可能的副本需要单克分布,我已经投票决定以一个问题的复本结束,并给出了解释如何结束的答案。我同意——感谢指针——当我用我觉得很自然的查询进行搜索时,它没有出现
如何在不使用lucene中的术语的情况下获取n个记录
例如,fieldname=“id”,我想获得id字段的前10条记录,不带任何术语
我的代码是:
Dim qp As New QueryParser(Version.LUCENE_30,"id", analyzer)
Dim searcher = New IndexSearcher(directory, True)
Dim q As Query = New TermQuery(New Term("id"))
Di
让我们假设我是在儿童时期用文本块为段落建模,但我希望索引器对整个段落文本进行操作。与其将文本复制到段落中,或者更改模型,是否有一种方法可以让索引器在索引之前重新构建段落(通过简单地连接所有子项)?i、 e.它在索引之前会进行一些处理?如果您使用的是手动遗留索引(在lucene中使用FTS也是必需的),那么您基本上会传递值和希望它指向的节点。该值甚至不需要是节点上的属性
在这种情况下,您必须自己进行处理,但这是可行的。传统索引是否将被淘汰?如果我选择的结构是基于能够做到这一点,我不想在以后被它束
我使用以下代码在pdf中搜索文本。它可以很好地处理单个单词。但是对于代码中提到的句子,它表明即使文本存在于文档中,它也不存在。有谁能帮我解决这个问题吗
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
// Store the index in memory:
Directory directory = new RA
在使用类突出显示字段时,我应该如何显示全文而不是一个片段?我在任何地方都找不到答案。荧光笔的碎片程序控制返回的片段(碎片)的生成。您可以使用使其使用字段的全部内容:
highlighter.setTextFragmenter(new NullFragmenter());
我正在使用studio中的OrientDB2.0。我使用文档中的代码成功创建了Lucene空间索引:
CREATE class Place extends V
创建属性Place.name字符串
CREATE property Place.latitude double
CREATE property Place.double
在Place(纬度、经度)空间引擎LUCENE上创建INDEX Place.l_lon
然后,我创建了一些带有纬度和经度的地点对象
当我尝试使用文档格式进行空间搜索时
从
我希望能够在如下文档中实现对foo数组中的项目的搜索:
{
"_id":"...",
"_rev":"...",
"foo":
[
"This is some text",
"Another lot of text",
"In fact there are lots and lots of these",
...
]
...
}
foo数组最多可以包含数千项。有几千份文件
我知道如何根据问题索引和搜索foo数组中的项目,但理想情况下,我
在Cloudant中,是否可以对来自搜索索引(而不是视图)的一组结果执行诸如reduce之类的操作
在我的例子中,我想找到所有标题值包含“foo”的文档,然后根据每个文档的viewCount值,对每个文档求和视图总数。您不能减少,但可以使用刻面来获得计数
示例查询
?q=*:*&计数=[“类型”]
示例响应
{
"total_rows":100000,
"bookmark":"g...",
"rows":[...],
"counts":{
"type":{
"
我想把Gerrit 2.10升级到2.11.1
Gerrit托管在Tomcat7上,在Windows7上使用MySQL 5.6。
Gerrit 2.11的文档提到,如果LUCENE的索引版本是11[在我的案例中也是如此],那么可以使用在线重新索引来减少Gerrit的停机时间
在运行java-jar-gerrit-2.11.war init-d时,我仍然会在启动gerrit之前得到运行reindex的提示
如何在线重新索引
我有一个巨大的Git回购清单,有多年的封闭式评论,也有许多开放式评论。我
我在考虑Lucene是否是完成任务的好工具
我有包含公司名称、唯一识别号(即税务ID、统计报告ID号等)的数据
是否可以创建索引并以允许“向下提升”具有不匹配此唯一标识符字段的记录的方式对其进行查询
如果TAX_ID在文档和查询之间匹配,则分数会上升
如果文档或查询中都没有TAX_ID,则它将保持中立
但若文档和查询的TAX_ID不同,则得分会下降
我这样做的方法是,当文档没有TAX\u ID时,在TAX\u ID中索引特定的标志值,然后使用boosts提供您想要的评分。因此,您的查询看起来是
标签:elasticsearch Lucene
analyzerstop-wordsinverted-index
这是我的自定义分析器
"analysis": {
"analyzer": {
"just_lowercase": { "type": "custom", "tokenizer": "keyword", "filter": ["lowercase"] }
}
}
我想忽略所有为空字符串或空字符串的字段。我理解这是标准分析仪的默认行为;如何在自定义分析器中重现该行为
更新的问题:我希望此行为:字段上存在的查询(通过仅小写字母分析)不得返回任何具有空值或空字符串值的文档。可能吗
更新
我试图在Lucene中创建自己的自定义分析器和标记器类。我主要遵循以下说明:
我根据需要进行了更新(在Lucene的较新版本中,阅读器存储在“input”中)
但我有一个例外:
令牌流协定冲突:reset()/close()调用丢失,reset()调用多次,或者子类未调用super.reset()。有关正确的消费工作流的更多信息,请参阅TokenStream类的Javadocs
这可能是什么原因?我推测调用reset\close根本不是我的工作,而是应该由分析器完成
这是我的自定义分析器类:
我们在90%的rdf查询中使用搜索。我想看看是否有人知道如何修复文件/sesame data/openrdf sesame/logs/main.log中的错误“org.openrdf.query.QueryEvaluationException:java.util.ConcurrentModificationException”。
当错误发生时,紧随其后的是rdf服务器CPU使用率的迅速提高、rdf服务器的无响应性以及重新启动服务器的必要性。
它似乎是随机发生的,与特定的查询无关。我想知道这个错
我正试图得到另一份类似的文件。我正在使用Lucene.Net来实现这个目标。为此,我将文档分为多个字段-标题和内容。现在,在没有有趣术语的空查询中创建实际查询结果
我的眼睛看起来像这样:
var queries = new List<Query>();
foreach(var docField in docFields)
var similarSearch = new MoreLikeThis(indexReader);
similarSearch.SetFieldNam
我正在使用标准分析器来存储在特殊字符上标记的信息,并删除诸如“the”之类的停止字。我的问题是:
(1) 如果我做了一个SpanQuery,搜索“最佳素材”,但没有存储单词“The”,那么我是否需要编写代码来删除这个单词,以便只搜索“最佳素材”,还是自动为我处理
(2) 我也必须自己处理小写吗?1-对于查询,分析通常由查询解析器处理。通常,不要做任何分析。因此,如果您自己在查询中进行构造,包括SpanQueries,那么您将不得不处理任何分析问题。这不仅包括删除“The”,而且最有可能的“Bes
基于术语的索引和同样在LUCENE 6.5中搜索的基于查询的索引之间的确切区别是什么?我不知道您从哪里听说过“基于术语”和“基于查询”的索引
术语是索引中经过分析的文本块。最常见的是这些词,但这取决于您的分析器
查询是一组搜索条件,指定要在索引项中查找的内容
我有以下查询字符串:
从cq:PageContent中选择jcr:title、jcr:created、jcr:description,其中jcr:path类似于“/content/../%”并包含.,“*”按日期排序ASC
问题是查询返回给定路径中的所有节点,即使它们在任何项目中都没有星号。我想转义星号字符,但结果是一样的。我试过这样的方法:
从cq:PageContent中选择jcr:title、jcr:created、jcr:description,其中jcr:path类似于“/conten
我尝试使用Logstash将日志从logs.csv文件发送到elasticsearch。在Elasticsearch中,我有类型为log的索引日志。目前,我的logstash.conf看起来是这样的:
input {
file {
path => "/run/shm/elastic/logstash/logs.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
fi
GraphDB支持FTS Lucene插件构建RDF“分子”来高效索引文本。但是,当您正在搜索的单词中出现拼写错误时,Lucene将无法检索结果。我想知道是否有可能在FTS的GraphDB中的Lucene索引之上实现基于Damerau-Levenshtein算法的模糊查询。这样,即使单词拼写不正确,也可以根据编辑距离相似性获得更多“封闭”单词的列表
这是我在WordNet RDF中为名词语法集的标签创建的索引
PREFIX wn20schema: <http://www.w3.org/20
我正在使用Lucene/solr在文件上传应用程序中进行搜索和导航
每次下载时,我需要更新每个文档的索引值“已下载”
同样的情况也发生在digg.com上,他们在搜索时每个链接有多少个“digg”
每次下载时是否必须删除/插入新文档。
或者有更好的吗?根据上的,您不能部分更新文档:
在Lucene中,更新文档的操作实际上是先删除,然后添加。您需要添加完整的文档,因为Lucene中没有这样的“只更新一个字段”语义
如果要更新字段,必须添加整个文档。我知道,没有更新实现。。这不是我的问题。我的问题是
我想从lucene索引文件中获取一些数据。但我看不懂
我尝试使用Luke,但它总是在java.lang.OutOfMemoryError:java堆空间中崩溃。注意-Xmx帮不了我。我尝试使用-Xmx512、-Xmx1024甚至-Xmx2048
我也尝试使用Solr,但也得到了java.lang.OutOfMemoryError:java堆空间
有没有办法从Lucene那里提取一些数据
另外,我使用lucene 2.3.0。我的索引文件大小为1.8 Gb。您试图获取的数据大小是多少?可能结果集太
我使用的是OpenSearchServer(社区版)v1.2.4-rc3-stable-rev1474-build802。我在C语言和C++编程网站上爬行。现在,当我搜索C或C++时,软件会把一些特殊的字符像是α,+。软件返回的结果并不准确。如何处理OpenSearchServer/Lucene中的特殊字符,如(#)?谁能给我提个建议吗?提前感谢 < P>你需要改变你的索引策略,使用自定义或半定制记录器保留你需要的特殊字符来代表C和C++代码项。您可以在索引和搜索期间使用此标记器
一开始,我会看
我正在一步一步地学习Lucene。然而,我在网上找不到关于如何在Mac上安装Lucene的清晰教程。有人知道吗?非常感谢 (摘自我上面的评论)
对于Lucene,我认为你不会“安装”它。相反,它是一个JAR文件,包含在应用程序的类路径中。通常,您只需要二进制JAR文件。使用像Eclipse这样的Java感知IDE(它为您编译Java代码)可能是一个好主意。启动一个项目并告诉它将lucenejar文件添加到它的构建路径中,然后就可以开始编写示例程序了。你试过一些Lucene教程吗
在项目文件夹中创
标签: Lucene
lucene.netfaceted-search
在使用Lucene.Net的应用程序中,我有一个存储整数的数字字段。值的基数相当低(通常小于20-30个不同的值)
我想在此字段上进行分面搜索(使用contrib包中的SimpleFacetedSearch),即我想要每个不同值的点击数
目前,我正在另一个文本字段中存储该值的副本,并在该文本字段上运行分面搜索。这将返回正确的结果
然而,这是一种方法,还是有一种特殊的方法可以在数字字段上进行分面搜索
注释:由于基数低,我可以考虑将精度步长设置为In .Max值,以便每个值只有一个项。我想在这种情况
在linux上尝试使用Lucene索引内容时,我收到以下错误消息:
我的代码在Windows和Mac OS上运行得非常完美
有什么想法吗?检查正在编制索引的文件系统中的锁定服务
ps aux| grep lockd
有关更多信息:
问题已解决。似乎无法打开NSF上的write.lock。我的解决方案似乎是在本地磁盘/tmp上建立索引。可能与@davidgood one重复。永远不要在NFS上存储lucene索引:@David:你是说NFS吗??您是否尝试为NFS启用locink服务?
inde
正在成功创建我的索引。我的问题是,当尝试在Luke中读取时,我得到了一个错误:
Caused by: java.io.IOException: read past EOF
我知道Lucene确实提供了一个不存储字段的选项。然而,最好的办法是什么
存储字段而不考虑其大小,如果在搜索中找到了匹配项,则从文档或
不存储字段,如果在搜索中发现命中,则查询数据库以获取相关信息
以下是用于创建索引的代码:
public class CREATEiNDEX {
/**
* @param
关于Lucene 4.0,我有两个问题:
1) 我想更改Lucene中的排序,所以我创建了自己的tfidf类,然后调用TermStats构造函数
ts[t] = new TermStats( contents[t].field,contents[t].termtext, contents[t].docFreq, tfidf);
但信息是
TermStats(String,BytesRef,int,long) is not public in TermStats; cannot
我正在为索引对象构建一个lucene查询,以确定当前时间是否介于开始时间和结束时间之间。我无法得到确切的lucene查询
org.apache.lucene.search.Query luceneQuery5=queryBuilder3.bool()
.must(queryBuilder3.keyword().onFields("TimeDependentProfileKey").matching("TimeKey").createQuery())
.must(queryBuil
我有一个下面的映射文档,确切地说,它确实在索引和搜索时间应用了word delimiter analyzer,专门用于模型字段和同义词analyzer,它对搜索字符串进行搜索时间分析
映射
POST /stackoverflow
{
"settings":{
"analysis":{
"analyzer":{
"keyword_analyzer":{
"tokenizer":"keyword",
标签: Lucene
analyzerquery-parser
我已经使用StandardAnalyzer构建了一个索引,在这个索引中有几个字段。例如,假设它具有Id和类型。两者都是未分析的,这意味着您只能按原样搜索它们
我的索引中有几个条目:
{Id: "1", Type: "Location"},
{Id: "2", Type: "Group"},
{Id: "3", Type: "Location"}
当我搜索+Id:1或任何其他数字时,我会得到相应的结果(再次使用StandardAnalyzer)
但是,当我搜索+Type:Location或
标签: Lucene
classcastexceptionhibernate-searchglassfish-4.1.1
我试图在我的一个JavaEE项目中使用Hibernate搜索,似乎遇到了与以下问题完全相同的问题:
我的Maven项目正在使用
Java JDK 1.8.0_73
Hibernate 5.0.6.1最终版本
Hibernate Search 5.5.2.Final(使用Lucene 5.3.1)
并尝试在Glassfish 4.1.1应用程序服务器上部署(对标准配置的更改很少)
当部署我的应用程序时,当Lucene尝试从包Lucene backward codecs(版本5.3.1)加载编解
我有很多基于可获得的折扣和指定优先级的价目表的产品。“价格”零件映射如下所示:
"price": {
"properties": {
"USD": {
"type": "nested",
"properties": {
"amount": {
上一页 1 2 ...
18 19 20 21 22 23 24 ...
下一页 最后一页 共 78 页