Lucene 在WhitespaceAnalyzer中使用停止字

Lucene的StandardAnalyzer在索引字符串/首字母缩略词时会删除其中的点。 我希望Lucene保留点,因此我使用WhitespaceAnalyzer类 我可以将我的停止词列表提供给StandardAnalyzer…但如何将其提供给WhitespaceAnalyzer 感谢阅读。通过扩展WhiteSpaceAnalyzer和重写方法创建您自己的分析器,如下所示 public TokenStream tokenStream(String fieldName, Reader reade

Lucene 位置感知搜索

我正在尝试使用中的空间示例进行位置感知搜索 schema.xml有一个geohash字段,但该字段不存在于用于索引的任何.osm文件(存在于数据文件夹中)中。我无法理解该值是如何分配给它的,因此当我给出此查询时 http://localhost:8983/solr/select/?q=_val_:"recip (ghhsin(geohash(44.79, -93), geohash, 3963.205), 1, 1, 0)"^100 结果集已检索到geohash值。这是怎么发生的?请帮帮我。

如何配置solr/lucene以执行levenshtein编辑距离搜索?

我在一个非常简单的SOLR/Lucene数据库中输入了一长串单词。我的目标是从单术语查询的列表中找到“相似”单词,其中“相似性”具体理解为编辑距离内的(damerau)levensin。我知道SOLR为拼写建议提供了这样的距离 在我的SOLRschema.xml中,我配置了一个字段类型string: <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> 显然,

Lucene 是否可以在一个查询中获得匹配的文档及其所有祖先? 说明我的需求考虑以下目录结构:

C:\Dev C:\Dev\Projects C:\Dev\Projects\testproject C:\Dev\Projects\Test Project\Test.cs C:\Dev\Projects\Foo C:\Dev\Projects\Foo\Foo.cs包含单词test 基本文档将具有id、类型、名称和内容字段,其中类型为文件或文件夹,名称为文件名或文件夹名 搜索测试时,我应获得: C:\Dev结果的祖先 C:\Dev\Projects结果的祖先 C:\Dev\Projects\T

lucene3.0.3 |在搜索条件中出现多个布尔查询时获取正确的文档

我使用的是查询式 criteria = (sql OR sqlserver OR "sql server") AND java AND delphi . 在本例中,当我使用下面提到的默认解析器代码时: QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field, analyzer); Query query = parser.parse(criteria); 当我在下面的代码中使用QueryParser.或\u运算符时

Lucene SOLR中的Span查询

如何在SOLR中发布span查询(span、SPANAR等)?我已经 我做了一些研究,但我说不出一个简单的方法 似乎我需要实现一个QueryParserPlugin来完成 我想做的事。这条路对吗?这肯定是以前做过的。做 有人有例子的链接吗?我找不到任何东西。Span当前不支持查询() 从这个角度来看,通过实现QueryParserPlugin,您似乎走上了正确的道路 如果你实现这个,考虑提交补丁!

如何覆盖lucene中的stopwords

我正在我的文件夹中创建一个Lucene索引,我正在索引txt文件的内容。我希望我的内容没有stopwords索引,但在通过分析器后,实际上在搜索时会让我停止使用stopwords,但我需要所有文本索引。 我把代码放在下面: IndexWriter writer = new IndexWriter(new SimpleFSDirectory(indexDir), new SpanishAnalyzer(Version.LUCENE_36),

Lucene 搜索引擎如何执行精确的短语搜索?

我正在使用Lucene在数据集中搜索,我现在需要知道“”搜索(我指的是精确短语搜索)机制是如何实现的 我想让它能够在用户输入“littlecat”时生成所有“littlecat”点击。我现在应该操作索引代码,但至少我现在应该知道“”搜索的工作原理。我想让它能够在用户输入“littlecat”时生成所有“littlecat”点击结果 这听起来可能很容易,但很难实现。对于人类来说,“小”和“猫”是两个不同的词,但对于计算机来说,它无法将“小”和“猫”与“小”区分开来,除非您有一本词典,并且您的代码在

Lucene 使用tika从内容提取中排除菜单

我生成包含菜单和内容部分的html文档。然后我想提取这些文档的内容,将其提供给lucene索引。但是,我想从内容提取中排除菜单,因此只对内容进行索引 <div class="menu">my menu goes here</div> <div class="content">my content goes here</div> 我的菜单在这里 我的内容在这里 使用apache tika实现这一点最简单的方法是什么?您可以使用解析器将html解析

elasticsearch elasticsearch在不重新索引整个文档的情况下更新源字段

我有文件{customerID:111,name:bob,approved:yes} “已批准”字段未编制索引。我有一个映射集为“approved”:{“type”:“string”,“index”:“no”} 因此,只有“customerID”和“name”字段被索引 如何在不重新索引整个文档的情况下仅更新源中的approved字段?我可以传递要更新的部分文档,例如{approved:no} 这可能吗?您要找的是。问题是,这实际上会隐式地执行delete+put+index,但您只需将这段时间

elasticsearch 按热门点击聚合结果分组

我想根据用户上次访问的时间筛选出文档,并获取单个用户最近访问的文档,然后根据报价代码对所有筛选出的文档进行分组 我通过执行tophits聚合来获取用户最近访问的文档。但是,我无法使用offercode对tophits聚合的结果进行分组 ES查询以获取用户的最新文档 { "took": 53, "timed_out": false, "_shards": { "total": 2, "successful": 2, "fail

Lucene Hibernate搜索查询所有相交点的实体

我正在开发一个有餐馆的应用程序,每个餐馆都有送货范围,并且需要为用户回答哪些餐馆可以送货到他/她的当前位置 我用hibernate spatial获得了一个简单的解决方案,但当我进入hibernate搜索,将全文搜索与地理搜索结合起来时(由于可伸缩性),我还没有找到解决方案。一些想法/建议/例子 例如,在Hibernate Spatial中,查询如下所示: SELECT r FROM Restaurant r WHERE within(:point, r.coverage) 显然,保险范围是指

Lucene ConstantCorerangeQuery已弃用

我刚刚踏入lucene世界,试图了解ConstantCorerange查询及其在lucene 6.2.1中的替代方法的使用 谷歌搜索后,我发现ConstantCorerange已被弃用,我应该从以下链接选择NumericRangeQuery或TermRangeQuery: 我目前正在使用Lucene 6.2.1库并尝试更改此代码段: public Query toQuery() { return new ConstantScoreRangeQuery(getName(), lo

我可以通过多个线程同时使用Lucene.Net中的同一个IndexSearcher实例吗?

我希望能够在Lucene.Net中通过多个客户端同时搜索和索引 它是否可能是线程安全的 IndexSearcher的同一个实例是否可以跨线程共享?是.. 甚至索引也是如此 您可以同时编制索引和搜索,但在重新创建搜索者之前,您对索引所做的更改对搜索者不可见。创建Searcher对象时,Searcher将拥有索引的快照 索引搜索可以而且应该跨线程共享 诀窍在于决定何时用索引的新快照刷新搜索器 我写了一篇文章,展示了我如何编写代码,在线程之间共享搜索者,同时确保搜索者始终使用最新索引 我并不是说我的解

将lucene指数分成两半

将现有Lucene索引拆分为两半的最佳方法是什么?即,每个拆分应包含原始索引中文档总数的一半。一个相当强大的机制是使用文档校验和,对索引数进行模化,要决定它将进入哪个索引。拆分现有索引(无需重新编制所有文档的索引)的最简单方法是: 制作现有索引的另一个副本(即cp-r myindex mycopy) 打开第一个索引,删除一半文档(范围0到maxDoc/2) 打开第二个索引,并删除另一半(范围为maxDoc/2到maxDoc) 优化这两个指标 这可能不是最有效的方法,但它只需要很少的编码。Luce

Lucene标记文本的过程

这可以看作是一个一般的Java问题,但为了更好地理解,我使用Lucene作为示例 您可以在Lucene中使用不同的标记器来标记文本。有一个主要的抽象标记器类,然后是许多不同的类来扩展它。令牌过滤器也是如此 现在,似乎每次您要为文档编制索引时,都会创建一个新的标记器。问题是,既然tokinzer只是一个实用类,为什么不将其设为静态类呢?例如,将所有字母转换为小写的标记器可以有一个静态方法,该方法只对它获得的每个输入执行此操作。为我们要索引的每一段文本创建一个新对象有什么意义 需要提及的一点是,To

如何释放所有lucene.net文件句柄?

我想运行一个进程,彻底销毁然后从头开始重建我的lucene.net搜索索引 我被困在破坏性的部分 我打过电话: IndexWriter.Commit(); IndexWriter.Close(); Analyzer.Close(); foreach(Directory.ListAll()中的var name){Directory.ClearLock(name);Directory.DeleteFile(name);} Close()目录 但该过程失败,因为仍然是文件“\u 0.cfs”上的文件处

Lucene:构建单个术语的查询

我是Lucene的新手,我想知道他们之间的区别(如果有的话) 及 PhraseQuery要求要搜索的字段中存在所有术语 您的BooleanQuery不要求所有术语都存在 这就引出了一个问题,即您的短语查询与: term1 = new TermQuery(new Term(...)); booleanQuery.add(term1, BooleanClause.Occur.MUST); term2 = new TermQuery(new Term(...)); booleanQuer

Lucene SolR查询-价格范围

我正在查询SolR server以获取价格范围 如何构造一个立即返回的查询: 所有项目的价格范围(不带方面查询) 具有方面查询的项目的价格范围(或列表) 对于这样的滑块,我需要以下四个值: all_min=============user_min========user_max========all_max 用于获取最小值和最大值。使用或获取特定价格范围内的面。StatComponent很好,但我可以在结果分组的每个组上使用它吗?我想知道每组的价格范围。我该怎么做?@Bob Yoplait

具有确定类别/标记的Boost SOLR/LUCENE文档-simulate';如果';功能

问题:在类别为999的文档上添加2倍增强。 解决方案:3.2 尝试使用: bq组件bq=category\u id:999^2 ->这是不可接受的,因为它会产生加法(非乘法)助力 boost(在太阳黑子3.x中是相乘的)和a,比如:boost=sum({!term f=category_id}999,1) ->术语查询不返回1或0,而是必须标准化的lucene分数 IF函数 ->solr 3.2中还没有,将在下一个版本中提供:您是否尝试过添加增强功能,但发现它失败了?我的经验是,这种

Lucene 如何设计一个自动质量保证系统?

是否有助于建立质量保证体系 提前感谢。如何启动: 真正的知识是如何运作的: 自然语言QA系统如何工作: L.Hirschman,R.Gaizauskas,《自然语言问答:这里的观点》,自然语言工程,第7卷第4节,第275-300页,2001年12月 相关问题(答案推荐Lucene): 启动的工作原理: 真正的知识是如何运作的: 自然语言QA系统如何工作: L.Hirschman,R.Gaizauskas,《自然语言问答:这里的观点》,自然语言工程,第7卷第

如何在Lucene中获取文档术语向量的文档ID

我是Lucene world的新手,对这门学科的工作知识不多。我需要提取文档术语向量,我在网上找到了以下代码 我的问题是,我不知道如何获取上述功能所需的文档ID(列出文档编号)。我试过两种方法,比如 TermDocs docs = reader.termDocs(); 但它不起作用。Lucene从零开始分配ID,这是上限,因此您可以简单地循环获取所有ID,跳过已删除的文档(Lucene在调用deleteDocument时将其标记为删除): for(int-docNum=0;docNum

如何使用Lucene库提取n-gram?

我正艰难地试图在Lucene图书馆周围盘旋。这就是我到目前为止所做的: public void shingleMe() { try { StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35); FileReader reader = new FileReader("test.txt"); ShingleAnalyzerWrapper shingleA

Lucene 在elasticsearch中组合单独的查询

我有两个搜索词“86746184549”和“3302093809”。我正在执行两个单独的术语查询,以获取与每个ID匹配的一个文档 "size":1, "query":{ "term":{ "from_user_id": "86746184549" } } 及 是否有一种方法可以组合这两个查询,类似于我们在facet中所做的 { "facets":{ "facet_1":{ }, "facet_2":{ },

Lucene 4.4.0新Controlled RealtimeRestore线程示例用法

在Lucene的新4.4.0版本中,近实时管理器(org.apache.Lucene.search.NRTManage)已被替换为 有没有人有一些新ControlleDrealtimeRecoverThread使用的示例代码 编辑:我在下面回答我自己的问题我对这个问题做了一些研究,并建立了一个实用类型。。。没有经过充分的测试(特别是在并发条件下),无论如何它都可以工作,而且我非常确定它是线程安全的 @Slf4j 公共类LuceneIndex{ 私人最终索引编写器(IndexWriter);; 私

如何确保Lucene在索引后离开文件?

我正在使用Lucene为XML文件编制索引。文件将进入输入目录,编制索引并移动到输出目录 在某些情况下,它工作正常,但很少有文件失败 当我尝试使用Windows命令提示符重新创建该文件时,它显示该文件已在使用,这告诉我java进程仍然连接到该文件 有人能帮我确保Lucene java进程在索引后离开文件吗 这是我正在尝试的代码 int originalNumDocs = writer.numDocs(); for (File f : queue) {

Lucene QueryParser分析仪不一致性

我有一个非常简单的分析器,它试图用空格替换正斜杠。因为QueryParser强制我在解析之前用斜杠转义字符串,所以我在分析器中添加了一个MappingCharFilter,用单个空格替换\/。分析仪的定义如下: @Override protected TokenStreamComponents createComponents(String field, Reader in) { NormalizeCharMap.Builder builder = new NormalizeCharMa

如何从Lucene删除数据';是否完全按文档id进行索引?

我在MongoDb中有一组文档(url:String,title:String,content:String)。url是一个唯一的字段,包含如下内容server://aaa/bbb/1.html. 我想用Lucene索引数据,而不是Mongo(我可以更改存储)。我将把url存储在Lucene的索引中。当用户通过关键字搜索某个内容时,我将使用Lucene执行查询,读取url字段,然后转到Mongo,根据url提取文档。它工作得很好 但我不能通过url从Lucene的索引中删除数据,因为它包含许多不

Lucene子串匹配

检查字符串a是否是Lucene中字符串b的一部分的最佳方法是什么。例如:a=“资本”和b=“柏林是德国的首都”。在这种情况下,b包含a并符合要求 我认为您的问题可以被视为某个字段是否包含某个术语。 基本术语查询应该足以解决您的问题,在大多数分析工具中,“柏林是德国的首都”将被分析为“柏林”、“首都”“德国”(如果您使用基本停止词) 您还可以使用PhraseQuery来解决您的问题(不过,您的问题不是PhraseQuery最合适的场景) Lucene在Action 2nd中,3.4 Lucene的

elasticsearch 弹性搜索不区分大小写

我有以下基于注释的弹性搜索配置,我已将索引设置为不进行分析,因为我不希望这些字段被标记化: @Document(indexName = "abc", type = "efg") public class ResourceElasticSearch { @Id private String id; @Field(type = FieldType.String, index = FieldIndex.not_analyzed) private Stri

Lucene Cloudant到CouchDB

我们正在开发一个使用Cloudant作为数据库的应用程序,它是Couchdb的一个变体。Cloudant开始变得有点贵,因为上一个问题,我们也不可靠。我们已经失去了一天与DBs的联系。所以我们决定建立我们自己的Couchdb服务器 实际上,我们有两种选择CouchDB 1.6和2.0开发者预览版。第二个提供了我们所需要的所有功能,如果我们编译它的话,它支持全文搜索。第一个没有Mango查询,没有Dreyfus和Closeau。我们只能安装couchdb lucene来启用全文搜索,但实际上我们在

elasticsearch Liferay dxp中的Indexer和IndexWriter类之间有什么区别?

我不熟悉Liferay和ElasticSearch。Indexer类和IndexWriter类之间的主要区别是什么?。我使用BaseIndexer为Elasticsearch中的文档编制索引。IndexWriter还有一些我认为用于拼写检查和建议的方法。请帮助我理解这两门课之间的明显区别。我无法深入了解这一点,因为我自己的知识很肤浅,但我将用从这些文档中学到的知识来回答: 索引器用于控制索引内容和索引方式。 IndexWriter用于控制文档创建、更新和删除的时间和方式。因此@Russ Bohl

elasticsearch umbraco elasticsearch和lucene中哪个更好

我知道,一般来说,弹性搜索在大多数情况下都更适合使用,但我想特别了解Umbraco,它是否适合使用?或者如果lucene更好我以前没有使用弹性搜索,但我经常使用Umbraco,我使用lucene,主要是通过使用lucene的检查 在这里阅读有关检查的信息 请参见我在Umbraco中使用Examine here设置的一些高级搜索的示例 Lucene是一个搜索库,Elasticsearch是一个基于Lucene的搜索引擎,Umbraco是一个CMS。不幸的是,这个问题太主观了,没有正确的答案,也没有

elasticsearch Elasticsearch没有';t在多匹配查询中返回结果

我想知道为什么Elasticsearch没有为以下内容提供任何结果: 但它给了我以下方面的结果: GET /stag/_search { "query": { "multi_match": { "type": "phrase_prefix", "query": "ferran may", "fields": [ "fullName", "fullName.folded" ] } } } 我认为每个单词可能有一个最小字符长

Lucene 使用Hibernate搜索的基于鉴别器的多租户过滤

我正在尝试使用hibernate搜索向实体添加全文搜索。我们的模式使用基于鉴别器的多租户,其中每个租户都是一个带有id的公园 @Entity @Indexed public class ProductModel { @Field // park is the tenant private Long parkId; @Field(index = Index.YES, analyze = Analyze.YES) @Analyzer(definition = "customa

elasticsearch Elasticsearch:模糊查询和筛选结果

我对Elasticsearch非常陌生,我正在尝试创建一个带有模糊查询的搜索引擎 我可以使用以下代码通过模糊搜索获得结果: { "query": { "match": { "skill": { "query": "Project management", "fuzziness": 2, "pref

Lucene 用SOLR搜索短单词

我正在使用SOLR和NGramTokenizerFactory来帮助创建单词子字符串的搜索标记 NGramTokenizer配置的最小字长为3 这意味着我可以搜索例如“unb”,然后匹配单词“难以置信” 然而,我对像“我”和“在”这样的短词有一个问题。SOLR没有为它们编制索引(我怀疑这是因为NGramTokenizer),因此我无法搜索它们 我不想将最小字长减少到1或2,因为这会创建一个巨大的搜索索引。但我希望SOLR包含长度已经低于这个最小值的整个单词 我该怎么做 /Carsten首先,试着

如何排除Solr/Lucene中的某些URL

我已经在一个网站上设置了Solr索引的新实例。我希望Solr不要索引某些URL模式。有没有办法提及这种排除模式 问候,, 第可以在程序中执行,仅当模式与排除模式不匹配时才进行索引。可以在程序中执行,仅当模式与排除模式不匹配时才进行索引。您可以使用。在该UpdateRequestProcessor中,如果文档与正则表达式匹配或不匹配,您可以决定是否为文档编制索引。您可以使用。在这个UpdateRequestProcessor中,如果文档与正则表达式不匹配,您可以决定是否为文档编制索引。您是否有一个

Lucene Solr中的同时查询

嘿 我正在部署一个包含3000多万文档的Solr服务器。目前,我正在测试搜索性能,结果非常依赖于我同时执行的查询数量: 1同时查询:2516ms 2同时查询:42504469毫秒 3个同时查询:578162196219ms 4个同时查询:648472037719781毫秒 Jetty线程池配置为默认值: 新建class=“org.mortbay.thread.BoundedThreadPool” Set name=“minThreads”10 Set name=“lowThreads”50 S

Lucene嵌套查询

我有这种情况 Entity Company_id ----------------- E001 1 E001 2 E003 1 E002 2 E001 3 E003 3 我想知道有多少公司有实体(E001和E003),在这种情况下,结果应该是公司1和3 在SQL中,可以通过进行嵌套查询来解决此问题,但我应该使用类似luncene的方法,因为性能需要此查询将对每个页面执行50次以上 注:我也可以限制3或4个实体,例如

如何在Lucene中为类似文档评分?

我想在Lucene中为类似的文档打分。让我解释一下我的情况 例如,假设我的文件中有以下记录,我在这些记录上创建了索引 ID|First Name|Last Name|DOB 1 |John |Doe |03/18/1990 1 |John |Twain |03/18/1990 3 |Joey |Johnson |05/14/1978 3 |Joey |Johnson |05/14/1987 4 |Joey |Johnson

为lucene中的整数编制索引

我使用下面的代码来索引一个整数值 String key = hmap.get("key"); System.out.println("key == "+Integer.parseInt(key)); if(key!=null && key.trim().length()>0) doc.add(new IntField("kv", Integer.parseInt(key),IndexFieldTypes.getFieldType(INDEX_STORE_FI

Lucene 有可能利用搜索引擎进行分类吗?

我需要对大量文件进行分类。我见过许多用于分类的经典机器学习算法。但突然间,我问自己,我们能用搜索引擎做到这一点吗 我的大致想法是: 我们有几个用于标记文档的文件夹,例如: 文件夹1=类别1 文件夹2=类别2 然后,对于每个未标记的文档,我们使用它作为标准,让搜索引擎搜索每个文件夹,返回结果最多的应该是目标类别 我不确定这是否可行。我不知道如何为一组文档创建搜索引擎,Bing或Google可以为其定制吗?或者我需要用Lucene或其他什么东西来构建一个吗?是的,搜索引擎存储了进行文本分类所需

Lucene查询数组和;“在”中&引用;“全部在”中&引用;任何在「;操作

我需要用Lucene查询语言实现以下谓词: {param} IN optionIds 其中,{param}是我的外部参数,optionId是数组(或集合) 例如,我的文档具有以下选项ID: "optionIds": [ 72, 44, 11, 9, 10 ] 以下Lucene谓词optionId:72正确返回此文档 但是如何基于以下值返回此文档:72、11、9 以下谓词optionId:72、11、9不起作用,Lucene查询返回空结果 请演示如何

elasticsearch 如何优化Elasticsearch的结果?

我环顾四周,没有关于这样一个问题的线索 我正在使用,我遇到了一个问题。我首先对整个字符串进行分析,然后使用AND,但结果并不准确。搜索整个字符串不会返回任何结果,但搜索'brian cardeau'会返回142个结果,其中只有两个结果是相关的。它似乎是和对'brian'部分进行排序,并找到包含该单词的所有结果。有办法解决这个问题吗 我使用基本搜索作为 try { const response = await client.search({ q: 'brian cardeau' }

上一页 1 2 ...  10   11   12   13    14   15   16  ... 下一页 最后一页 共 78 页