我正试图通过运行以下代码来索引nutch抓取的数据:
bin/nutch index -D solr.server.url="http://localhost:8983/solr/carerate" crawl/crawldb -linkdb crawl/linkdb crawl/segments/2016*
一开始它工作得很好。我索引了我的数据,发送了一些查询,并收到了很好的结果。但是我再次运行爬行,这样它就可以获取更多的页面,现在当我运行nutch index命令时,我会面对
我不是专家,所以我不确定如何在不搞砸其他东西的情况下纠正分析器。我读到我可以:1。使用(在索引分析器中)一个LengthFilterFactory,以便过滤掉那些不在请求长度范围内的令牌。2.(在索引分析器中)使用TruncateTokenFilterFactory来修复索引标记的最大长度
但是模式中有很多分析器。是否应该更改定义的分析器?如果是,因为内容和其他字段的类型都是text_general,这不会影响所有这些字段吗?
有人知道我该怎么解决这个问题吗?如果有任何帮助,我将不胜感激。
顺便说一句,我使用的是nutch 1.11和solr 6.0.0。
假设您使用与Nutch捆绑在一起的schema.xml
作为Solr安装的基本模式,基本上只需要将这些筛选器(LengthFilterFactory
或TruncateTokenFilterFactory
)添加到Text_General
字段类型中。
从text_general
fieldtype
(https://github.com/apache/nutch/blob/master/conf/schema.xml#l108-l123)的初始定义开始,您需要将以下内容添加到
部分:
...
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<!-- remove long tokens -->
<filter class="solr.LengthFilterFactory" min="3" max="7"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
...
这也可以使用相同的语法应用于
query
分析器。如果要使用TruncateTokenFilterFactory
筛选器,只需将添加的行替换为:
<filter class="solr.TruncateTokenFilterFactory" prefixLength="5"/>
此外,不要忘记根据您的需要调整每个筛选器的参数(
min
、max
)和
truncateTokenfilterFactory
的prefixlengt
。
回答您的其他问题:是的,这将影响所有
text_general
类型的字段,但这并不是问题,因为如果在任何其他字段中发现另一个超长项,将引发相同的错误。如果您仍然希望仅针对content
字段隔离此更改,只需使用新名称创建一个新的fieldtype
(truncated_text_general
,例如,只需复制并粘贴整个fieldtype
节并更改name属性),然后更改content
字段的类型(https://github.com/apache/nutch/blob/master/conf/schema.xml#l339)以匹配新创建的
也就是说,只需为筛选器选择正常的值,以避免从索引中遗漏大量术语。
问题内容: 我在Elasticsearch上遇到问题,我不希望对索引项进行分析。但是elasticsearch有一些默认设置,可以在空间上标记它。因此,我的方面查询未返回我想要的结果。 我读到索引类型的属性应该工作。但是问题是我事先不知道我的文档结构。我会在不知道表结构的情况下将随机MySQL数据库索引到elasticsearch。 我如何设置elasticsearch,使其默认情况下会一直使用,
本文向大家介绍Asp.Net中索引器的用法分析,包括了Asp.Net中索引器的用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了Asp.Net中索引器的用法。分享给大家供大家参考。具体如下: 索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一、索引器特性
我用cmd删除了映射 在我的配置文件中,我定义了如下索引:, 并尝试创建一个新的映射,但我得到了错误 {“error”:{“root_cause”:[{“type”:“index_not_found_exception”,“reason”:“no-this index”,“resource.type”:“index_or_alias”,“resource.id”:“logstash_log*”,“
Lucene提到- 但是我们可以通过IndexWriter.setMaxFieldLength(int)对其进行配置。 我在ElasticSearch-http://localhost:9200/twitter中创建了一个索引,并发布了一个包含40,000个术语的文档。 映射- 我用message字段索引了一个文档,有40,000个术语-message:“text1text2....text400
问题内容: 根据Mongoose 文档中关于和/的内容: 当您的应用程序启动时,Mongoose会自动调用架构中每个已定义的索引。虽然有利于开发,但建议在生产中禁用此行为,因为创建索引会严重影响性能。通过将架构选项设置为false来禁用该行为。 这似乎指示从Mongoose删除自动索引,然后再部署以优化Mongoose,而从指示Mongo在应用程序启动时遍历所有索引开始,这似乎是有道理的。 在生产
我已经通过了lucene索引机制。我有一些疑问,我找不到一个直截了当的答案,我仍然对我在几篇参考文献中的阅读感到困惑。 考虑使用Lucene对数据库表进行索引。 假设该表有10列,其中很少有caseid、modifiedby、modifiedtime、casename、legalname等。。。 现在,如果我创建一个索引的情况下,那么在搜索是不是可以搜索的基础上修改字段??? 假设我在2列case