我发现了一篇关于Lucene和geosearching的有趣文章:
是否有一个类似的.NET实现我一直找不到,或者我必须重新编写他的示例中的Java代码以适应.NET框架?我也看到了这篇文章。我在谷歌搜索中没有看到特定于.NET的代码,所以我计划在需要时也移植这段代码。现在,我刚刚用Lucene.NET把脚弄湿了,还没有到我对它感到足够舒服的地步,开始扩展它
本文中的代码似乎是Lucene in Action中概述的概念地理距离功能的派生示例。尽管这本书是基于Java产品的,但它是一本很棒的读
Lucene查询与过滤器
它们都做类似的事情,比如termquery按术语值过滤,我想过滤的目的是类似的
何时使用过滤器和何时使用查询
今天刚开始使用lucene,因此尝试澄清概念时,可以将查询传递给搜索者以查找文档。过滤器不能;它只能修改查询产生的结果
实现新的查询类型相当复杂,需要了解Lucene内部的关系,如权重、评分器和相似性。过滤器实现可能相当简单,根本不与索引阅读器交互。过滤器不会影响未过滤文档的分数计算
例如,想象以下文档:
1.
loc: "uk", "london"
text:
我们有一个使用3.0.2 Lucene jar生成的索引。安装和配置的Solr版本为1.4.1。在Solr的lib目录中,我看到Solr使用了Lucene 2.9.3
启动时引发异常:“不兼容的格式版本:2预期为1或更低”。我猜这可能是因为Lucene版本不兼容-3.0.2用于生成索引,2.9.3用于读取索引
我是否缺少配置步骤
提前感谢。您必须将Lucene降级到2.9.x或将Solr升级到3.x/4.x(trunk),后者使用的是更新的Lucene版本
我有一个字段在Solr的schema.xml中被索引为字符串,它来自mysql数据库中的一个布尔(tinyint)列
在查询中,我使用1搜索此字段。但是如果没有任何更改,此查询将无法返回正确的结果。在我使用true而不是1之后,它再次起作用。现在它又出了问题,但对于true,1没有问题
这里到底有什么问题?是否需要将schema.yml中的字段类型更改为整数
提前感谢您。因为它是一个字符串字段,我们不可能知道您是如何索引它的。它可能是“真”/“假”或“1”/“0”或“开”/“关”,等等。甚至是这
正在为Lucene的反向存储寻找模式的实际视觉工件。也许可以帮助您
这是solrnet发送的url
*%5d&fq=p_review_type%3a1&sort=p_review_date+desc&rows=4&q=%3a&
url始终以&?结尾
搜索过程中花费的时间比普通url慢10倍
如何解决这个问题
提前感谢这可能是一个bug,但我从来没有看到任何性能或行为上的差异。索尔只是忽略了这一点
您可能想尝试编译最新的源代码,看看它是否解决了您的问题。但正如我所说,我真的怀疑这是10倍减速的真正原因
标签: Lucene
full-text-searchhibernate-search
我想把db全文搜索改成lucene。我正在使用hibernate,所以我想使用hibernate搜索是明智的。不过我有个问题
我们的记录有来自不同语言的信息和标题列表,我需要能够基于单一语言和所有语言进行搜索
我可能可以在普通的lucene中实现,但我不知道它在当前事务中的效果如何。因此,使用hibernate搜索和hibernate处理索引会更好
是否可以在索引中创建这样的字段,以按照我描述的方式进行搜索
class Record{
List<Info> infos;
}
我是Solr的新手,我很好奇更改/更新模式的过程是什么
我注意到我可以很容易地添加新字段而不会引起任何问题,但每当我不得不更新字段时,都会引起问题
由于摄入系统的数据量很大,我将无法保留用于生成solr的add/doc查询的原始数据,因此当发生更改时,我将无法简单地对所有内容重新编制索引
例如,我希望将现有字段的类型从“string”更改为“text”,而text字段类型有许多标记器、过滤器等,我希望立即在现有数据上使用它们
理想情况下,我正在寻找一种方法来更新模式,重新索引/优化现有数据集,并
标签: Lucene
termsemantic-analysistf-idflatent-semantic-indexing
目标是评估大型文本语料库中术语之间的语义关联性,例如,“警察”和“犯罪”应该比“警察”和“山”具有更强的语义关联性,因为它们往往同时出现在同一上下文中
我读过的最简单的方法是从语料库中提取信息
许多人使用潜在语义分析来寻找语义关联
我遇到了Lucene搜索引擎:
您认为提取IF-IDF合适吗
在技术和软件工具方面,你会推荐我做的事情吗
提前谢谢
Mulone是的,Lucene获得TF-IDF数据。该算法是基于Lucene的语义提取程序的一个示例。我提到它是因为,作为第一步,他们创建了一个相关矩阵
我有一个Lucene索引,我想迭代一下(在当前开发阶段进行一次评估)
我有4个文档,每个文档有几十万到一百万个条目,我想迭代计算每个条目的字数(~2-10)并计算频率分布
我目前正在做的是:
for (int i = 0; i < reader.maxDoc(); i++) {
if (reader.isDeleted(i))
continue;
Docu
假设我的索引包含一个名为“ages”的字段的文档。“年龄”字段的示例条目:
二十五
24,28
25,31
我该如何查询这些文档,以便获得其字段包含年龄在20到30岁之间的所有文档?我正在使用Zend Lucene。lmgtfy:-
$from = new Zend_Search_Lucene_Index_Term(20, 'ages');
$to = new Zend_Search_Lucene_Index_Term(30, 'ages');
$query = new Zend_Sea
我正在我的web应用程序中使用couchdb lucene。我有一个搜索用户的功能
每个用户都是一个具有“全名”、“用户名”和“活动”等属性的文档
Activity只是一个浮点数,表示用户的活动程度。所以我希望Lucene也考虑这个因素,同时给每个用户评分。我该怎么做 编制索引时,可以使用Document.setBoost()方法。此外,您不仅可以在文档级别执行此操作,还可以通过调用field.setBoost()对文档中的一个字段执行此操作。您可以按(搜索“boost”)中的说明增强添加到文档
我知道Lucene中有一个NumericRangeQuery,但是否可以让Lucene简单地返回存储在NumericField中的最大值。我可以在整个已知范围内使用RangeQuery,然后进行排序,但这非常麻烦,如果有很多记录,它可能会返回大量结果索引搜索器的第二个参数index.search(Query-Query,int-n,sort-sort)允许指定前n个命中数(在您的案例1中),如果排序正确,仅返回所需的结果。还有其他重载方法可以实现同样的效果
尽管如此,我还是不能为它的麻烦争论:)
我的所有Lucene.net(2.9.2)文档都有两个字段:
类别
正文
bodytext是默认字段,是存储文档所有文本的位置(使用field.Store.NO、field.Index.analysis、field.TermVector.WITH_POSITIONS\u offset)
categoryid只是一个以文本形式存储的数字字段:field.Store.YES,field.Index.NOT\u分析
执行此查询时,它仅返回类别ID为:categoryid:1
但是,当我执行此查询时
当我们看到这些异常突然发生时,我们的lucene索引似乎正在被破坏。我们通过删除索引文件夹来修复它,以便重建索引
问题是,我们无法可靠地重现此异常,因此很难找出导致此异常的原因
有人知道什么样的jackrabbit操作最有可能破坏搜索索引吗?我们在jackrabbit的硬“重启”中遇到了类似于杀死运行应用程序的服务器这样的问题。使用Lucene 3.6(在Jackrabbit 2.5.1中)可能会使部分内容消失。看来这可能是由于容器中断并击中了a。您知道当时正在执行哪些操作吗?您是否能够始终如一
我正在使用standardalyzer为字段编制索引,它从输入字符串中删除标点符号。我的输入字符串包含特殊字符,如@、#、-等
例如:索引数据可能由userid:AB@234,ABC#DF
我正在尝试更新传递BooleanQuery uesrid:ABC@34使用writer.deletedocuments(查询)删除以前的文档
使用writer.updateDocuments(术语、文档)更新索引
使用上述查询删除当前indexex将删除以ABC@开头的所有值。即,具有userid值的文档AB
标签: Lucene
grails-2.0compass-lucenegrails-searchable
我正在使用grail的可搜索插件(0.6.4)。我需要根据隐私设置搜索成员。下面是数据库设计。
成员具有MemberProfile,并且MemberProfile具有PrivacySettings
class Member extends {
String firstName
String lastName
static searchable = {
analyzer "simple"
only = ['firstName'
标签: Lucene
elasticsearchelastic-map-reduce
我了解什么是Elasticsearch,但不知道如何为Elasticsearch编写插件。有谁能告诉我将插件写入Elasticsearch的指导原则。Found.no(Elasticsearch托管服务)对Elasticsearch插件开发过程有很好的了解。它和我在那里看到的一样详细,而且是最近的(2013年9月),所以应该是合理的最新版本。如果我打算从头开始构建一个插件,我会从这里开始:
另一个是在Github上挖掘其他插件:
其他插件列表:
在教程和查看所有源代码之间,你应该有一个坚
我从elasticsearch框中获取以下日志:
org.apache.lucene.index.CorruptIndexException: [myindex][2] Preexisting corrupted index [corrupted_5Y_pGXmYQOG5PGlZURWqxw] caused by: CorruptIndexException[checksum failed (hardware problem?) : expected=9cf1207c actual=4eda74
我在每个文档中都有一个字段,其中包含一个浮动,这意味着可以作为对文档进行排序的备用方法。因为它是一个浮点数,所以可以是负数。当我要求Elasticsearch搜索“order”:“desc”时,我首先得到最大的负值,然后是较小的负值。这是错误的,好像这个标志被忽略了,这根本不是我想要的
"popRank": {
"unmapped_type": "float",
"order": "desc"
}
文档的部分如下所示:
"popRank": -310,
如果查询使用desc我
我需要返回不包括带有特定ID的文档的结果。Elasticsearch允许我们指定允许哪些ID,但我认为没有办法禁止某些ID。在我的例子中,我不想返回用户已经看到的内容,因此每个用户的列表都会不同。您可以通过添加一个bool/must\u not过滤器来实现这一点,该过滤器包含一个ids过滤器,其中包含一个您不想显示的id数组,如下所示:
{
"query": {
"bool": {
"must": [
... <
我正在开发wso2 Das产品来存储业务事件。我发现wso2服务正在运行,但无法访问管理控制台。我得到以下错误:-
TID:[-1][[2016-03-01 16:59:54185]错误{org.wso2.carbon.analytics.dataservice.core.indexing.AnalyticsDataDexer}-处理索引批处理操作时出错:创建索引编写器时出错:编解码器头不匹配:实际头=0与预期头=1071082519(资源=缓冲checksumindexinput(/\u da
标签: Lucene
azure-cognitive-search
使用Azure Search REST API v2016-09-01,以下查询可以找到预期的文档:
?queryType=full&search=id:3119443 AND name:du*
?queryType=full&search=id:3119443 AND name:d*
{
“价值”:[
{
“@search.score”:4.425995,
“id”:“3119443”,
“名称”:“杜邦”
}
]
}
鉴于以下更广泛的查询(搜索d*而不是du*)未找到相
标签: Lucene
full-text-searchhibernate-search
我有如下映射:
@Entity
@Table(name = "t_documents")
@Indexed(interceptor = DocumentIndexingInterceptor.class)
public class Document implements Serializable {
@Id
@GeneratedValue
@DocumentId
private Long id;
@IndexedEmbedded(prefix = "se
我正在尝试创建一个应用了多个过滤器的自定义分析器
public class CustomAnalyzer : Analyzer
{
protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
{
Tokenizer tokenizer = new KeywordToken
标签:elasticsearch Lucene
elastic-stack
目前,我有一个elasticsearch索引,其中一个字段包含子字段,如a、B、C,如下所示:
"myfield":{
"A":{
"name":"A",
"prop1":{
"sub-prop1":1,
"sub-prop2":2
},
"prop2":{}
},
"B":{
"name":"B",
"prop1":{
"sub-prop1":3,
"sub-prop2":8,
我应该什么时候使用Lucene的RAMDirectory?与其他存储机制相比,它有哪些优势?最后,在哪里可以找到一个简单的代码示例?当您不想永久存储索引数据时。我使用它进行测试。将数据添加到RAMDir目录,在RAMDir中进行单元测试。
e、 g
或
public void testRAMDirectory()引发IOException{
Directory dir=FSDirectory.getDirectory(indexDir);
MockRAMDirectory ramDir=新的Mo
为什么我会在Lucene中遇到这样的错误,以及如何解决它
找不到文件“C:\Indexes\u z3\u 1.del”
谢谢。看起来像一个损坏的索引
如果可以很容易地从另一个数据源重建索引,最简单的方法就是删除它并重建它。谢谢您的输入。但是我可以知道为什么索引一开始就损坏了吗?在创建索引时,您目前是如何建建和更新索引的,如果IndexWriter未完全关闭,您将导致索引损坏。@Ed,您可以尝试使用Luke:查看索引。它可能会为您提供有关索引损坏原因的其他信息。
使用Lucene的查询解析器,可以通过添加“^n”来增加术语(使它们在搜索结果中的权重更高),例如,“苹果^5派”将赋予术语“苹果”五倍的重要性。在使用API构造查询时是否可以这样做?请注意,我不想提升字段或文档,而是提升字段中的单个术语。您只需要使用查询类的setBoost(float)方法
比如说
TermQuery tq1 = new TermQuery(new Term("text", "term1"));
tq1.setBoost(5f);
TermQuery tq2 = new Te
标签: Lucene
search-enginehibernate-search
我喜欢使用HibernateSearch跨网页上的多个输入字段实现复杂的自动提示功能。
每个输入字段都有自己的实体,比如说国家和城市。两个实体之间存在多对一关系
(国家包含城市)
自动提示功能应能在键入例如国家名称前缀和城市字段时进行操作,
你只会得到有这样一个城市的国家的建议(反之亦然)
服务器端自动建议服务应返回投影列表
(entityId,entityName),它们被渲染到输入字段(下拉列表,无论什么)
根据该模式,在阅读手册后,我尝试了以下索引模式:
SearchMapping map
我有一个Lucene索引,其中包含以下文档:
_id | Name | Alternate Names | Population
123 Bosc de Planavilla (some names here in 5000
345 Planavilla other languages)
假设我们希望重视包含许多电影相关词的文档。对于这些文档,我们希望分配一些静态质量分数。对于后续查询,分数计算为静态分数加上文档对查询的分数。文档增强是针对此类情况设计的功能。只是,它不是加法,而是乘法(它通过给定的因子来缩放原始分数),但这可能是您所需要的
我想使用lucene的这两个类-
import org.apache.lucene.analysis.snowball.*;
import org.apache.lucene.analysis.PorterStemmer;
但我在下载的lucene 3.5中找不到这两个类。你能告诉我从哪里可以下载包含这两个类的jar文件吗
PS-我尝试搜索lucene 3.0.1 jar,但找不到它
谢谢。奇怪,波特·斯泰默应该在主罐里。然而,雪球分析仪在罐子里。奇怪的是,波特茎干分析仪应该在主罐子里。然
标签: Lucene
elasticsearchfaceted-searchtag-cloud
我正在尝试使用elasticsearch的facets功能制作一个单词和短语的标签云
我的映射:
curl -XPOST http://localhost:9200/myIndex/ -d '{
...
"analysis":{
"filter":{
"myCustomShingle":{
"type":"shingle",
"max_shingle_size":3,
"output_unigrams":tru
我是Lucene的新手。我有两个文档,我希望与名为“关键字”的文档字段完全匹配(该字段可能在一个文档中出现多次)
第一个文档包含关键字“Annotation is cool”。第二个文档包含关键字“Annotation也很酷”。当我搜索“Annotation is cool”时,我必须如何构建查询,以便只找到第一个文档
我读了一些关于“StringField”的东西,它没有标记化。如果我在方法“addDoc”中将“关键字”字段从“TextField”更改为“StringField”,那么将找不到
我希望像URL这样的字段能够被索引和存储,但不能被分析。Field类有一个构造函数来执行同样的操作
Field(String name, String value, Field.Store store, Field.Index index)
但是自从lucene 4以来,这个构造函数就被弃用了,建议使用StringField或TextField对象。但它们没有任何构造函数来指定要索引的字段。那么可以做到吗?你好,你说的完全正确。使用Lucene提供的新字段,您无法实现您想要的。
您可以继续使用
我在不同的时间有很多文件。
现在我需要计算一段时间内文档的tfidf。
下面是我将要做的,例如:
我一年有一百万个文本文档,我将在一个月内把这些文档作为语料库。
我想计算每个月的tfidf,即计算一个月内的术语频率,并乘以剩余月份的逆文档频率
数据(文本、时间等)是使用lucene索引的,我只是想知道lucene是否有助于计算这种情况
我知道Lucene可以帮助我获得术语频率和文档频率,但是否有API限制计算的时间范围
非常感谢。我已经找到了一个使用Lucene.Net 3.0.3和有效负载的解
是否可以基于其他找到的文档提升找到的文档
例如,如果我有一个文档A,它有一个到文档B的链接,并且两个文档都是独立找到的,那么要同时增强它们吗?我所说的链接是指具有另一个文档ID的字段
目前,我正在“手动”完成这项工作,即,我对TopDocs进行后期处理,以查找与同一结果中的其他文档有链接的文档,并将这些文档移到顶部。这不是最好的解决方案,因为TopDocs本身已经受到限制,没有考虑到我的自定义增强功能。我建议实施自定义lucene收集器或扩展现有收集器。通过这种方式,您可以存储检索到的所有文档I
当我通过获取ElasticSearch服务器设置时
curl -XGET localhost:9200/_cluster/settings
我看到了持久和瞬态设置
{
"persistent": {
"cluster.routing.allocation.cluster_concurrent_rebalance": "0",
"threadpool.index.size": "20",
"threadpool.search.size": "30",
"cl
我将把Lucene版本从3.5迁移到4.7。
由于我的索引非常庞大,我想知道是否值得重新编制索引。
我最感兴趣的是它是否值得在性能的情况下。
有什么建议吗
像往常一样,没有简单的答案
最大的变化是,在v4.0中,Lucene引入了提供自定义编解码器/发布格式的功能。Michael McCandless(Lucene的作者之一),:
默认情况下,Lucene使用StandardCodec,它在
与当前稳定分支(3.x)的格式几乎相同。详情
给定的术语存储在术语词典文件中,而文档和
出现该术语的位置
我已经将每页的点击率限制提高到一个大整数。即使在这之后,它也只返回100个结果。有没有办法让我得到所有的结果
int hitsPerPage = 5000000;
IndexReader reader = IndexReader.open(index);
IndexSearcher searcher = new IndexSearcher(reader);
TopScoreDocCollector collector = TopScoreDocCollector.cre
我正在和Lucene的BM25相似性课程做斗争。Web上提供的所有示例都引用了较旧的实现。我恳请您提供一个指针,说明如何修改下面的标准玩具示例,以包括BM25相似性创建索引和执行搜索
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.a
标签: Lucene
multilingualanalyzerindexwriter
我需要根据文档语言为文档编制索引,为此我希望使用适当的分析器。在不关闭和重新打开IndexWriter的情况下,是否有可能将analyzer更改为单个字段,因为这显然是一项昂贵的任务,而且语言可能会经常更改?
还是有更好的方法来处理多种语言
谢谢只需将适当的分析仪传递到谢谢,不知道我怎么会错过这一个:)
我有一个带有搜索索引的Cloudant数据库。在搜索索引中,我为文档的标题编制索引。例如,搜索“Rijkspersonel”:
返回48行
但是,当我用a替换“o”时?通配符:
我得到0个结果。为什么呢?他们说这也应该和“Rijkspersonel”匹配 我以前的回答肯定是错的。内部通配符似乎不受支持。尝试:
title:rijkspe*on*
title rijksper?on*
相当肯定这里发生的是一个分析问题。相当确定您使用的是词干分析器。我对cloudant及其实现并不十分熟悉,但
我添加了两个相同的文档,唯一不同的是文档的id(我重新启动了每个文档的场景,并且没有按顺序添加它们。为了确保我的测试是正确的)
其中一个更改了此查询结果的顺序,但其中一个没有:
GET index_for_test/business/_search
{
"query": {
"multi_match": {
"query": "italian",
"type": "most_fields"
说我质疑:
POST /story/story/_search
{
"query":{
"bool":{
"should":[
{
"match":{
"termVariations":{
"query":"not driving",
"type":"boole
我用两个词来提问,即“测试”和“测试”。我想要这样的东西:
org.apache.lucene.search.Query query = (org.apache.lucene.search.Query) qb
.keyword()
.wildcard()
.onFields("jobTitle", "tags", "role", "DepartmentName",
"skillSet", "longDescription", "d
您好:我正在从Lucene 5.1迁移到Lucene 6。我发现InPoint不支持排序,因为它的DocValuesType被冻结为NONE,排序需要数字。在Lucene 5.1中,我可以设置一个newmeric字段的字段类型,这样我就可以进行基于范围的搜索并对结果进行排序。我知道我可以迁移到LegacyIntField,但我想迁移到新的IntPoint。有人知道如何为数值编制索引以支持基于范围的查询和排序吗
谢谢大家! 您必须使用额外的
并在此基础上进行排序
searcher.search(q
我有一个ES2.4.1集群,有3个主节点和18个数据节点,它们收集日志数据,每天创建一个新索引。在一天内,索引大小增长到大约2TB。超过7天的索引将被删除。在集群上执行的搜索很少,因此主要目标是提高索引吞吐量
我看到以下许多例外情况,这是我接下来要说的另一个症状:
EsRejectedExecutionException[rejected execution of org.elasticsearch.transport.TransportService$4@5a7d8a24 on EsThrea
我使用Lucene 4.5.0编写了以下代码,我正在尝试升级到8.2.0
Lucene 4.5代码:
@Override
protected Analyzer.TokenStreamComponents createComponents(final String fieldName, final Reader reader)
{
final StandardTokenizer src = new StandardTokenizer(this.matchVersion, reader);
上一页 1 2 ...
11 12 13 14 15 16 17 ...
下一页 最后一页 共 78 页