lucene相关内容

使用 lucene 进行多语言搜索

我正在进行多语言搜索.并且我会使用 lucene 作为工具来做这件事. 我已经有翻译的内容了,每个文档会有 3 或 4 种语言. 对于索引和搜索,可能有 4 种策略,对于每个文档/内容: 每种语言都在不同的索引/目录中编入索引. 每种语言都在不同的文档中编入索引,但在同一个索引中. 每种语言都被索引在不同的字段中,但在同一个文档中. 所有语言都被索引在文档的同一个字段中 ..
发布时间:2022-01-15 12:53:09 其他开发

如何找出elasticsearch解析query_string的结果?

有没有办法通过 elasticsearch API 找出 查询字符串查询 真的被解析了吗?您可以通过查看 lucene 查询语法来手动执行此操作,但它会是如果您可以查看解析器实际结果的一些表示,那就太好了. 解决方案 正如 javanna 在评论中提到的那样,有 _validate api.以下是我的本地弹性(1.6 版)的工作原理: curl -XGET 'http://localho ..
发布时间:2022-01-15 12:53:03 其他开发

突出显示 _all 字段上的匹配结果

我希望突出显示匹配的结果.如果我提到字段名称并返回突出显示的文本,这对我有用,但是如果我将字段指定为“_all",它不会返回任何值.这对我有用: curl -XGET "http://localhost:9200/my_index/my_type/_search?q=stackoverflow&size=999" -d '{“强调":{“领域":{“我的字段":{}}}}' 这将返回预期值, ..
发布时间:2022-01-15 12:52:43 其他开发

使用 lucene 进行模糊搜索

我使用 lucene 4.3.1 实现了模糊搜索,但我对结果不满意.我想指定它应该返回的一些结果.因此,例如,如果我想要 10 个结果,它应该返回 10 个最佳匹配项,无论它们有多糟糕.大多数情况下,如果我搜索的单词与索引中的任何内容都非常不同,它不会返回任何内容.我怎样才能获得更多/更模糊的结果? 这是我的代码: public String[] luceneQuery(String q ..
发布时间:2022-01-15 12:52:34 其他开发

为什么 Lucene 不支持对现有文档进行任何类型的更新

我的用例涉及索引一个 Lucene 文档,然后在以后的多个场合添加指向该现有文档的术语,而不是为每个新术语删除和重新添加整个文档(因为性能,而不是保留原始条款). 我知道文档不能真正更新.我的问题是为什么? 或者更准确地说,为什么不支持所有形式的更新(术语、存储字段)? 为什么不可能添加另一个术语来指向现有文档 - 从技术上讲:所需要的不仅仅是将现有的文档 ID 放在术语的发布列表中 ..
发布时间:2022-01-15 12:52:27 Java开发

Lucene - 短语中的通配符

我目前正在尝试使用 Lucene 搜索填充在索引中的数据. 我可以通过将其括在括号中来匹配确切的短语(即“处理文档"),但无法让 Lucene 通过执行任何类型的“处理文档*"来找到该短语. 明显的区别是末尾的通配符. 我目前正在尝试使用 Luke 来查看和搜索索引.(解析时会去掉短语末尾的星号) 在数据周围添加引号似乎是主要的罪魁祸首,因为搜索 document* 会起作 ..
发布时间:2022-01-15 12:52:18 C#/.NET

如何在 elasticsearch 或 lucene 中基于索引类型提升搜索?

我有三个食物类型指数“意大利"、“西班牙"、“美国".当用户搜索“Cheese"时,来自“Italian"的文档似乎出现在顶部.如果我倾向于说“西班牙语",是否有可能“提升"结果?(我仍然应该得到意大利语的结果,但是基于索引类型“西班牙语"的一些数字提升值,结果中返回的文档的排序优先于“西班牙语"索引.这在用户输入 lucene 和/还是 ES 查询?如果是,怎么做? 解决方案 为 _ty ..
发布时间:2022-01-15 12:52:13 其他开发

Apache Lucene 8.4.1 如何获取索引字段和术语列表?

我是 Apache Lucene 的新手,我正在使用 Apache Lucene 8.4.1,我可以进行 Lucene 索引和搜索,但不知道如何使用 java 读取和列出索引/打印索引.如何获取索引字段和术语列表?. 我可以通过使用从其他 Stackoverflow 文章中获取的以下函数来获取归档列表. public static String[] getFieldNames(IndexR ..
发布时间:2022-01-15 12:51:25 其他开发

Lucene 词干分离器的区别:EnglishStemmer、PorterStemmer、LovinsStemmer

有没有人比较过来自 Lucene 的这些词干分析器(包 org.tartarus.snowball.ext):英语Stemmer、PorterStemmer、LovinsStemmer?它们背后的算法的优点/缺点是什么?什么时候应该使用它们?或者也许有更多的算法可用于英语单词词干提取? 谢谢. 解决方案 Lovins 词干分析器是一个 非常古老的算法,没有太多实际用途,因为 Port ..
发布时间:2022-01-15 12:51:07 Java开发

具有词干提取功能的标准分析器

有没有办法将 PorterStemFilter 集成到 Lucene 中的 StandardAnalyzer 中,或者我必须复制/粘贴 StandardAnalyzers 源代码,然后添加过滤器,因为 StandardAnalyzer 被定义为最终类.有没有更聪明的办法? 另外,如果我不想考虑数字,我该如何实现? 谢谢 解决方案 如果你想用这个组合进行英文文本分析,那么你应该使 ..
发布时间:2022-01-15 12:50:59 其他开发

使用 ElasticSearch JDBC River 从表中获取更改

我正在为 ElasticSearch 配置 JDBC River,但我找不到任何好的配置示例.我已阅读 pages 上的所有 elasticsearch-river-jdbc GitHub. 我有一个 SQL 查询,我需要每隔 X 秒从所有表列中获取更改.如何告诉 JDBC River 某行已更改并应重新编制索引? 在 ES 服务器启动期间获取数据,正在进行轮询,但不会将更改从 DB ..

如何设置一个字段以保持行在 lucene 中的唯一性?

我的应用程序为每一行生成唯一 id 以在 lucene 中建立索引并保存到数据库.一个假设是如果存在和行具有相同的 id,我想更新它,而不是插入新的行和索引. 怎么做? 解决方案 这正是IndexWrite#updateDocument 方法.第一个参数是索引中必须唯一的词. 例如, 字符串 id = "42";文档文档 = 新文档();Field field = new F ..
发布时间:2022-01-15 12:50:26 其他开发

Lucene 中的多字段查询处理

我在 Lucene 中编写了一个索引搜索器,它将搜索索引数据库中的多个字段. 实际上它将查询作为两个字符串,一个是 title,另一个是 cityname. 现在索引数据库有三个字段:title、address 和 city. 只有当标题匹配并且城市名称匹配时才会发生命中.为此,我在帖子的帮助下使用 MultiFieldQuerySearcher 编写了以下搜索器代码: pub ..
发布时间:2022-01-15 12:50:21 其他开发

Lucene RangeQuery 没有正确过滤

我正在使用 RangeQuery 来获取数量在 0 到 2 之间的所有文档.当我执行查询时,Lucene 也会给我数量大于 2 的文档.我在这里错过了什么? 这是我的代码: Term lowerTerm = new Term("amount", minAmount);期限 upperTerm = new Term("金额", maxAmount);RangeQuery amountQuer ..
发布时间:2022-01-15 12:50:13 C#/.NET

在 not_analyzed 字段上进行 Elasticsearch 通配符搜索

我有一个类似以下设置和映射的索引; {“设置":{“指数":{“分析":{“分析仪":{“分析器关键字":{“分词器":“关键字",“过滤器":“小写"}}}}},“映射":{“产品":{“特性":{“名称":{“分析器":“分析器关键字",“类型":“字符串",“索引":“未分析"}}}}} 我正在努力实现对 name 字段的通配符搜索.我的示例数据是这样的; [{“名称":“SVF-12 ..
发布时间:2022-01-15 12:50:07 其他开发

elasticsearch 分析器 - 小写和空格标记器

如何创建一个映射来标记空格上的字符串并将其更改为小写以进行索引? 这是我当前的映射,它通过空格进行标记,我无法理解如何将其小写并搜索(查询)相同... {“映射":{“我的风格" : {“特性" : {“标题":{“类型":“字符串",“分析器":“空白",“标记器":“空白",“搜索分析器":“空白"}}}}} 请帮忙... 解决方案 我设法编写了一个自定义分析器,并且这个工作 ..
发布时间:2022-01-15 12:49:51 前端开发

lucene 中的高光性能非常慢

Lucene (4.6) 荧光笔在搜索常用词时性能非常慢.搜索速度很快(100 毫秒),但突出显示可能需要一个多小时(!). 详细信息: 使用了很棒的文本语料库(1.5GB 纯文本).性能不取决于文本是否被分成更多的小块.(也用 500MB 和 5MB 块进行了测试.)存储位置和偏移量.如果搜索一个非常频繁的术语或模式,TopDocs 检索速度很快(100 毫秒),但每个“searcher. ..
发布时间:2022-01-15 12:49:41 Java开发

我可以自定义 Elastic Search 以使用我自己的停用词列表吗?

具体来说,我想为没有停用词列表的所有内容(例如谁)编制索引.弹性搜索是否足够灵活且易于更改? 解决方案 默认情况下,elasticsearch 使用的分析器是一个 标准分析器,带有默认的 Lucene 英语停用词.通过将以下内容添加到 elasticsearch.yml 文件,我已将 elasticsearch 配置为使用相同的分析器但没有停用词. # 索引设置指数:分析:分析仪:# 将 ..
发布时间:2022-01-15 12:49:35 其他开发