Tag: 搜索

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

我的用例涉及索引Lucene文档,然后在以后的多个场合添加指向此现有文档的术语,即不删除和重新添加每个新术语的整个文档(因为性能,而不是保留原始术语)。 我知道文档无法真正更新。 我的问题是为什么? 或者更确切地说,为什么不支持所有forms的更新(术语,存储字段)? 为什么不可能添加另一个术语来指向现有文档 – 从技术上讲:并非所需要的只是将现有文档ID放在术语的发布列表中。 为什么那么难? 是否存在一些不可变的统计数据? 是否有任何变通方法可以支持我在现有文档中添加术语(索引字段)的用法?

使用二进制搜索的多个键的最后一个索引?

我在排序数组中多次出现一个键,我想对它们执行二进制搜索,正常的二进制搜索为具有多次出现的键返回一些随机索引,其中我想要该键的最后一次出现的索引。 int data[] = [1,2,3,4,4,4,4,5,5,6,6]; int key = 4; int index = upperBoundBinarySearch(data, 0, data.length-1, key); Index Returned = 6

递归搜索Java中的目录

在Java中查找具有特定名称的目录的最佳方法是什么? 我正在寻找的目录可以位于当前目录或其子目录之一。

在文本文件中查找特定单词并对其进行计数

有人可以帮我代码吗? 如何在文本文件中搜索任何单词并计算重复的数量? 例如test.txt: hi hola hey hi bye hoola hi 如果我想知道在test.txt中重复多少次“Hi”程序必须说“3次重复” 我希望你理解我想要的东西,谢谢你的答案。

Lucene Proximity搜索超过两个单词的短语

Lucene的手册解释了邻近搜索有两个单词的短语的含义,例如http://lucene.apache.org/core/2_9_4/queryparsersyntax.html#Proximity Searches的”jakarta apache”~10例子 但是,我想知道像”jakarta apache lucene”~10这样的搜索到底是做什么的? 它是否允许相邻单词最多相隔10个单词,或者所有单词对是否相同? 谢谢!

REST和复杂的搜索查询

我正在寻找一种在REST API中建模搜索查询的强大方法。 在我的api中,您可以使用查询参数在资源的URI中指定搜索条件。 例如: /cars?search=color,blue;AND;doors,4 –> Returns a list of blue cars with 4 doors /cars?search=color,blue;OR;doors,4 –> Returns a list of cars that are blue or have 4 doors 在服务器端,搜索字符串映射到所需的基础技术。 根据其余资源,这可以是SQL查询,Hibernate Criteria api,另一个Web服务调用,…… 这2个例子很简单,但我还需要更复杂的搜索function,如子字符串搜索,日期之前/之后搜索,NOT,… 这是我认为的常见问题。 是否有我可以使用的库(或模式): 将指定为字符串的搜索查询映射到通用Criteria模型。 搜索格式不必与上面列出的相同。 允许我将Criteria模型映射到我需要使用的任何技术 。 为Hibernate / JPA / SQL提供映射支持,但这是一个奖励;) 亲切的问候, 格伦

递归搜索非二叉树中的节点

我想在非二叉树中搜索一个项目(任何节点都可以有n个子节点)并立即退出递归。 有问题的节点可以是任何节点,而不仅仅是叶子。 这是我的代码,但我没有得到完整的搜索。 private nNode recursiveSearch(data gi,nNode node){ if (node.getdata()==gi) return node; nNode[] children = node.getChildren(); if (children.length>0) for (int i = 0; i < children.length; i++) { return recursiveSearch(gi, children[i]); } return null; } nNode包含: ArrayList mChildren ; (这是孩子们) 和数据对象。

Scala替换Arrays.binarySearch?

Scala中是否有替换Java的int Arrays.binarySearch(Object[] array, object) ? 问题是Scala的数组不是协变的,所以我必须先将我的stringArray: Array[String] : stringArray.asInstanceOf[Array[Object]] 有更好的解决方案吗?

首次出现在二分搜索中

我正在修补一些代码,我意识到我从来不知道的事情。 正常的二进制搜索将在数据集中返回多次出现的密钥的随机索引。 如何修改下面的代码以返回第一次出现 ? 这是人们做的事吗? //ripped from the JDK public static int binarySearchValue(InvertedContainer.InvertedIndex[] a, long key) { return bSearchVal(a, 0, a.length, key); } private static int bSearchVal(InvertedContainer.InvertedIndex[] a, int fromIndex, int toIndex, long key) { int low = fromIndex; int high = toIndex – 1; while (low >> 1; long midVal = a[mid].val; if (midVal […]

如何使用TermVector Lucene 4.0

在索引方法中,我使用以下行: Field contentsField = new Field(“contents”, new FileReader(f), Field.TermVector.YES); 但是,在Lucene 4.0中,不推荐使用此构造函数,而应使用new TextField而不是new Field 。 但是TextField的问题在于它在构造函数中不接受TermVector 。 有没有办法在新的构造函数中将Term Vector包含在Lucene 4.0的索引中? 谢谢