- 浏览: 607958 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (263)
- 默认类别 (0)
- STRUTS HIBERNATE (2)
- STRUTS SPRING HIBERNATE (18)
- SOA/WEB service (8)
- PORTAL (3)
- 想法和设计思想 (17)
- SMARTEAM 二次开发 (0)
- ACTIVEBPEL (0)
- ERP (0)
- EAI (0)
- 甲醇汽油 (0)
- webwork freemarker spring hibernate (1)
- 工作流技术研究 (1)
- ROR (5)
- 搜索引擎 (7)
- 3.非技术区 (0)
- 1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (2)
- 2.Java新手区 (2)
- 4.其他技术区 (0)
- ESB (1)
- Petals ESB (6)
- 手机开发 (1)
- docker dedecms (1)
最新评论
-
w630636065:
楼主,期待后续!!!!!!!!
生成文本聚类java实现 (2) -
zilong513:
十分感谢楼主,期待后续。
生成文本聚类java实现 (2) -
qqgoodluck:
可否介绍一下您的选型依据,包括Petal ESB与MULE等E ...
Petals ESB 简介 -
jackiee_cn:
写的比较清楚,学习了
Petals ESB 集群实战 -
忙两夜:
你好,能发一下源代码吗
抓取口碑网店铺资料
拜读了solr的部分源码,却急于弄明白solr的索引顺序和查询顺序,如下是探访结果.
所有的配置都在solr/example/solr/conf/schema.xml当中.
<!-- 如下是对text类型的处理 --> <fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> <!-- 索引顺序1空格2同义词3过滤词4拆字5小写过滤6关键字7词干抽取算法--> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <!-- Case insensitive stop word removal. add enablePositionIncrements=true in both the index and query analyzers to leave a 'gap' for more accurate phrase queries. --> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> <!-- 查询顺序1空格2同义词3过滤词4拆字5小写过滤6关键字7词干抽取算法--> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> </fieldType> <!-- Less flexible matching, but less false matches. Probably not ideal for product names, but may be good for SKUs. Can insert dashes in the wrong place and still match. --> <!-- 针对textTight类型--> <fieldType name="textTight" class="solr.TextField" positionIncrementGap="100" > <!-- 查询顺序1空格2同义词3过滤词4拆字5小写过滤6关键字7英文相近词8去除重复词 --> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> <filter class="solr.EnglishMinimalStemFilterFactory"/> <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes possible with WordDelimiterFilter in conjuncton with stemming. --> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> <!-- A general unstemmed text field - good if one does not know the language of the field --> <!-- 针对textgen类型 --> <fieldType name="textgen" class="solr.TextField" positionIncrementGap="100"> <!-- 索引顺序1空格2过滤词3拆字4小写过滤--> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <!-- 查询顺序1空格2同义词3过滤词4小写过滤--> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <!-- A general unstemmed text field that indexes tokens normally and also reversed (via ReversedWildcardFilterFactory), to enable more efficient leading wildcard queries. --> <!-- 针对text_rev类型 --> <fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100"> <!-- 索引顺序1空格2过滤词3拆字4小写过滤6转义通配符--> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/> </analyzer> <!-- 查询顺序1空格2同义词3过滤词4拆字5小写过滤 --> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <!-- charFilter + WhitespaceTokenizer --> <!-- <fieldType name="textCharNorm" class="solr.TextField" positionIncrementGap="100" > <analyzer> <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/> <tokenizer class="solr.WhitespaceTokenizerFactory"/> </analyzer> </fieldType> --> <!-- This is an example of using the KeywordTokenizer along With various TokenFilterFactories to produce a sortable field that does not include some properties of the source text --> <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true"> <analyzer> <!-- KeywordTokenizer does no actual tokenizing, so the entire input string is preserved as a single token --> <tokenizer class="solr.KeywordTokenizerFactory"/> <!-- The LowerCase TokenFilter does what you expect, which can be when you want your sorting to be case insensitive --> <filter class="solr.LowerCaseFilterFactory" /> <!-- The TrimFilter removes any leading or trailing whitespace --> <filter class="solr.TrimFilterFactory" /> <!-- The PatternReplaceFilter gives you the flexibility to use Java Regular expression to replace any sequence of characters matching a pattern with an arbitrary replacement string, which may include back references to portions of the original string matched by the pattern. See the Java Regular Expression documentation for more information on pattern and replacement string syntax. http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/package-summary.html --> <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /> </analyzer> </fieldType> <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" > <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/> </analyzer> </fieldtype> <fieldtype name="payloads" stored="false" indexed="true" class="solr.TextField" > <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <!-- The DelimitedPayloadTokenFilter can put payloads on tokens... for example, a token of "foo|1.4" would be indexed as "foo" with a payload of 1.4f Attributes of the DelimitedPayloadTokenFilterFactory : "delimiter" - a one character delimiter. Default is | (pipe) "encoder" - how to encode the following value into a playload float -> org.apache.lucene.analysis.payloads.FloatEncoder, integer -> o.a.l.a.p.IntegerEncoder identity -> o.a.l.a.p.IdentityEncoder Fully Qualified class name implementing PayloadEncoder, Encoder must have a no arg constructor. --> <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/> </analyzer> </fieldtype> <!-- lowercases the entire field value, keeping it as a single token. --> <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory" /> </analyzer> </fieldType>
大致的索引顺序会是:
1.空格..............................solr.WhitespaceTokenizerFactory
2同义词............................solr.SynonymFilterFactory
3过滤词...........................solr.StopFilterFactory
4拆字..............................solr.WordDelimiterFilterFactory
5小写过滤.....................solr.LowerCaseFilterFactory
6关键字.........................solr.KeywordMarkerFilterFactory
7词干抽取算法............solr.PorterStemFilterFactory
大致的搜素顺序是:
1.空格..............................solr.WhitespaceTokenizerFactory
2同义词............................solr.SynonymFilterFactory
3过滤词...........................solr.StopFilterFactory
4拆字..............................solr.WordDelimiterFilterFactory
5小写过滤.....................solr.LowerCaseFilterFactory
6关键字.........................solr.KeywordMarkerFilterFactory
7英文相近词..................solr.EnglishMinimalStemFilterFactory
8去除重复词.................solr.RemoveDuplicatesTokenFilterFactory
当然了,你可以根据自己的权重来重新分配索引和搜素顺序
发表评论
-
通过commons.httpclient 自动识别网页编码
2012-05-29 16:43 2891在自动化抓取网站的时候,最讨厌的就是不同的网站有多种不 ... -
偷梁换柱:MMSeg4j借用庖丁解牛的词库
2011-05-11 10:41 3358“……他不回答,对柜里说,“温两碗酒,要一碟茴香豆。”便 ... -
随想:迅速取得海量数据之结构化数据
2011-05-11 10:09 1794呵呵,要想瞬间取得需要的数据,比如新闻信息,而且能够分门别 ... -
生成文本聚类java实现 (2)
2011-04-12 10:02 8316呵呵,继续。 本节的学习内容: 4.从剩余的 ... -
抓取口碑网店铺资料
2011-04-11 10:56 2493呵呵,只为自己玩,哈哈。 技术难度: 1 ... -
solr基础知识
2010-12-27 15:43 1901对 solr1.4版本 准备 下载 ...
相关推荐
这通常涉及到修改`schema.xml`或`managed-schema`文件,定义新的查询字段类型和查询解析器。例如,可以创建一个新的查询解析器,专门为自定义打分设计。 此外,Solr还支持插件开发,可以编写自定义的`Similarity`类...
Solr支持复杂的查询语法,能够实现高度灵活的索引配置和搜索结果排序。本文档主要介绍Solr的基本配置流程。 #### Solr目录结构 在安装Solr之后,了解其目录结构对于后续配置至关重要。Solr的主要目录包括: - **...
- **快速响应**:Solr通过高效的索引机制确保了查询速度极快,即使是面对海量数据也能迅速返回结果。 - **良好的可扩展性**:Solr支持水平扩展,即可以通过增加服务器节点的方式提升系统性能和存储容量。 - **易于...
Solr是一个流行的开源全文搜索引擎,它提供了一个强大的、高度可配置的索引和查询服务。在处理大量数据时,单线程的索引创建可能成为性能瓶颈,因此采用多线程技术可以显著提高索引构建的速度。 在这个示例中,我们...
- **综合统计信息**:提供关于缓存使用、更新和查询的统计信息。 - **文本分析调试**:可视化展示文本分析流程的各个阶段。 - **基于Web的查询调试**:帮助开发者理解和优化查询结果。 #### 3. Solr 的服务原理 ...
10. **评分和排序**:Solr根据相关性对搜索结果进行评分,并提供多种排序选项,使用户可以按需调整搜索结果的顺序。 在Solr-4.10.3的压缩包中,通常会包含以下文件和目录: 1. `bin`:包含启动和管理Solr的脚本。 ...
- **高度可配置**:Solr提供了灵活的配置选项,可以根据具体场景调整索引结构和查询策略。 - **强大的功能集**:除了基本的全文检索功能外,Solr还支持自动完成、拼写检查、高亮显示等多种高级特性。 #### 4. 功能...
“Query Syntax and Parsing”部分提供了关于查询语法和查询解析的详细信息。 “JSON Request API”部分讲述了使用JSON格式发送请求的API,这是Solr支持的几种请求格式之一。 “Faceting”部分介绍了如何在搜索...
Solr 是一个流行的开源搜索引擎,提供了丰富的功能,其中包括 Facet(分面)查询,它能够帮助用户在大量数据中进行高效、多维度的筛选。Facet 查询是数据分析和信息检索中的一个重要工具,允许用户查看数据的不同...
Solr不仅提供了强大的全文搜索能力,还能支持复杂的查询需求,并且具有良好的可扩展性和可靠性,是企业级搜索项目的首选。 **1.2 Solr的特性** - **1.2.1 Solr使用Lucene并且进行了扩展** Solr的核心是基于Lucene...
3. **配置与管理**:在解压后的文件中,我们通常会看到`conf`目录,它包含Solr的各种配置文件,如`schema.xml`用于定义字段类型和字段,`solrconfig.xml`用于设置索引和查询行为。此外,`server`目录下的`solr`子...
针对这一问题,文章提出了一种新的处理模式——引入分布式Solr索引层。在这种模式下,索引层会预先对数据库记录建立索引,查询操作不再直接作用于数据库而是直接访问索引层。这种改变可以显著提高查询性能,尤其在...
通过上述分析可以看出,SolrCloud 结合 Zookeeper 不仅解决了大规模索引和检索的问题,还提供了集中式配置管理、服务发现、分布式锁及集群管理等一系列高级特性,极大提升了分布式系统的稳定性和可扩展性。...
这些组件按照特定顺序执行,构建出适合索引和查询的文本表示。 标签中提到的“源码”和“工具”,意味着我们将讨论分词器的实现原理和可能用到的开发工具。分词器的源码可以帮助开发者理解其工作原理,进行定制或...
Solr支持复杂的查询语法,并且可以通过RESTful API进行交互,这使得Solr成为企业级搜索和大数据分析领域的首选工具之一。 #### 二、核心概念与功能 根据给定的内容片段,我们可以推断出以下核心概念与功能: 1. *...
此外,本书还涉及了Solr的安装配置、索引管理、查询解析等多个方面的内容,覆盖了从入门到精通的完整学习路径。作者David Smiley和Eric Pugh凭借其深厚的专业背景和丰富的实践经验,为读者提供了深入浅出的讲解和...
- Solr 中如何进行索引和查询操作。 --- #### 六、其他工具和技术 **6.1 Luke** - Luke 是一个用于查看和编辑 Lucene 索引的工具。 - 可以帮助诊断索引问题。 **6.2 Tika** - Apache Tika 是一个内容分析工具...
当我们在HBase上构建二级索引时,通常会利用Solr来提升查询性能,特别是对于那些需要进行复杂查询和全文搜索的应用场景。 标题提到的"morphlines.conf"和"morphline-hbase-mapper.xml"是这两个关键步骤中的配置文件...
Coprocessor作为核心组件,处理主要的逻辑,包括索引创建和查询优化。 【索引创建过程】 为避免Region Split破坏数据索引,Pharos在数据加载后,Region稳定时加载索引。此外,它采用了影子列族存储策略,将数据和...