Marklogic search development -1.Developing Search Applications in MarkLogic Server

来源:互联网 发布:小型图书馆源码 编辑:程序博客网 时间:2024/04/18 09:39

1.      Developing Search Applications in MarkLogicServer

1.1   Overview of Search Features in MarkLogic Server

1.                  Search API Library Module

Marklogic提供Search API Library Module这个是marklogic提供出来的API基于ctsseach

这个search API可以支持所有normalcase

2.                  Capablity

Marklogic可以支持100TB的数据查询服务。

3.                  Built-In Search Functions in the cts and xdmpNamespaces

Marklogic的核心search功能是基于ctsxdmpxquery search的全文搜索。Marklogic可以scale支持到100TB甚至更大的数据库。而cts search都是直接hintdatabaseno matter数据库有多大。

Marklogic在进行document的加载过程中,同时进行full-text index的处理,因此可以提供高效的search功能。诸如xdmp:estimate以及searchoption中的unfilter都是直接从index db中返回结果,从而提升performance

这些内建的search功能,诸如: cts:search, cts:word-query, cts:element-value-query等都是可扩展的,比如你看到的search API(search:search)即是基于此进行的扩展。当然你可以自行定义自己的扩展。

4.                  Full XPath Search Support

Marklogic支持实现XqueryXquery是基于Xpath的,Xpath表达式可以在整个database间进行执行。

XPath使用到index database,而且是设计为高性能。

5.                  Lexicon and Range Index-Based APIs

Rangindex用来设置xml文档中node value或者attribute value。每一个range index会有一个相应的lexicon APILexicon API工作在Index database上,直接由index db返回结果。这个lexicon对于facet非常有用。

如:我们设计xml文档结构,其中包含一个node,这个nodevalue定义company信息。当不同文档隶属于不同的company上传到marklogic后,我们有类似如下需求:将所有文档按照company进行categray

针对这种需求,我们可以针对该xml结构为company node设计rangeindex。后期,你可以使用lexicon API高性能的获取company document的分类信息。

Rangeindex就是用来设计采用xml结构中那个nodeattribute做为index,而lexicon API是工作在这类index结果之上的search API

SearchsearchAPIlexicon API上也同样做了封装扩展。

6.                  Stemming, Wildcard, Spelling, and Much MoreFunctionality

Stemming

Wildcardedsearches,

Diacritic-sensitive/insensitivesearches

Case-sensitive/insensitivesearches,

Spelling correctionfunctions

Thesaurus functions

Geospatial searches

Advanced language

Collation support

7.                  Alerting API and Built-Ins

你可以通过预先设置查询条件,alert API基于cts:querycts:reverse-query对新loading文档进行filter,从而按照你设计的processmodule/script)执行。

Marklogic支持SMTP邮件服务,因此你可以透过邮件通知你的客户。(是否可以直接发起http请求从而触发SMS服务用短信通知用户?)

你可以基于Alert API搭建大型的alerting application

 

 

原创粉丝点击