linux 全文搜索?vim搜索关键字

大家好,感谢邀请,今天来为大家分享一下linux 全文搜索的问题,以及和vim搜索关键字的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

使用OracleText构建全文搜索应用程序

Oracle Text是一种功能强大的搜索技术它内置于 Oracle数据库的所有版本(包括免费提供的快捷版(XE))中它所提供的开发 API使软件开发人员能够轻松实现功能齐备的内容搜索应用程序

Oracle Text可用于搜索结构化和非结构化文档是对 SQL通配符匹配的补充 Oracle Text支持使用基本的布尔运算符(AND OR NOT NEAR等)将多个搜索条目组合到一起此外它还具有更高级的功能如 soundex和模糊搜索以及结果排序等该技术支持数百种文件类型包括 Microsoft Office和 PDF Oracle Text适合多种与搜索相关的使用情况和存储结构 Text的应用领域包括电子商务文档和记录管理以及问题跟踪等可检索的文本可以结构化形式驻留在数据库中也可以非结构化形式驻留在本地文件系统中或 Web上

Oracle Text提供完整的基于 SQL的搜索 API该 API包含自定义查询运算符 DDL语法扩展一组 PL/SQL过程和数据库视图通过 Text API应用程序开发人员可完全控制索引查询安全演示以及有时会需要的软件配置在开发即需即用的非自定义软件时尤为如此通过即需即用的软件产品您希望使软件的配置尽可能简约即使这意味着要在产品开发中多做一些前期工作也是如此降低应用程序的复杂性通常会在产品生命周期的后期尤其是在支持维护和未来产品开发阶段中见到成效

Oracle Text还支持文档级授权而文档级授权通常很难在统一的同时保持高性能借助 Text组合了关系数据与非结构化数据的混和查询也得到了很好的支持对于授权这意味着您可以将全文搜索和授权合并到一个查询中独立结果集和获得最终结果所需的过滤阶段的数量可最大程度地缩减从而简化了应用程序的开发 Oracle Text使应用程序开发人员从繁琐的开发中解脱出来可以集中精力进行性能优化

Oracle Text也是编程语言不可知的并且也可以同样卓越的表现为 PHP以及 Java应用程序工作

前一段时间我需要提高企业内容管理(ECM)系统的搜索功能我首先对 Oracle Text的使用进行了评估评估证明 Oracle Text是一种构建应用程序搜索非常可行的技术它具有高级搜索功能支持大量不同的文件类型可高度自定义同时高度可伸缩原有搜索技术的一个缺点是您需要在数据库外部运行文件内容搜索然后运行数据库元数据搜索对结果进行授权最后合并独立的结果集使用 Oracle Text所有这些操作都可以在数据库中进行 ECM系统已经使用 Oracle数据库来存储元数据因为此项技术已经推出因此客户自然会选择使用而且它也不会给客户增加任何成本

在数据库中执行自由文本搜索查询的简单方法类似于

SELECT*FROMissues WHERELOWER(author)LIKE%word% ANDLOWER(author)LIKE%word%

使用这种方法每一列都需要与每个关键字单独进行匹配在每一列中可以任何顺序与关键字进行匹配然而关系数据库的设计使得它不会像上面那样有效地执行查询而且使用这种方法会产生极其不可伸缩的应用程序当然您可以设计自己的索引和搜索解决方案但是那样您可能不会优化使用您的资源在您已经为将搜索技术作为数据库的一部分付出了成本的情况下尤为如此

本文讨论 Oracle Text在虚拟的问题跟踪应用程序中的使用在这个应用程序中用户可以创建一些包含元数据和可选附加文件的问题该应用程序利用 Oracle Text实现元数据和可选附加文件内容的全文搜索功能

此处给出的示例已经在 Linux的 Oracle数据库 XE上进行了测试这些示例应该同样也可在其他 Oracle平台上运行良好

索引进程与搜索

Oracle Text为可检索的数据项建立索引之后用户才能够通过搜索查找内容编制索引是确保搜索性能的常用方法 Oracle Text的索引进程是根据管道建模的在这个管道中从数据存储检索来的数据项经过一系列转换之后其关键字会添加到索引中该索引进程分为多个阶段每个阶段都由一个单独的实体来处理并可由应用程序开发人员来配置

Oracle Text具有适合不同用途的不同索引类型对于大型文档的全文搜索适合使用 CONTEXT索引类型该索引进程包括以下几个阶段

数据检索只是将数据从数据存储(例如 Web页面数据库大型对象或本地文件系统)中取出然后作为数据流传送到下一个阶段过滤过滤器负责将各种文件格式的数据转换为纯文本格式索引管道中的其他组件只能处理纯文本数据不能识别 Microsoft Word或 Excel等文件格式分段分段器添加关于原始数据项结构的元数据词法分析根据数据项的语言将字符流分为几个字词索引最后一个阶段将关键字添加到实际索引中

索引构建完成后应用程序即可通过普通的 SQL查询执行最终用户输入的搜索

安装 Oracle Text

在默认情况下 Oracle Text随 Oracle数据库 XE一起安装如何使用的是其他数据库版本您需要自己安装 Oracle Text功能安装了此功能后您只需创建一个普通的数据库用户并赋予该用户 CTXAPP角色这样用户即可执行特定的索引管理过程

CREATEUSERot IDENTIFIEDBYot; GRANTconnect resource ctxappTOot;

文件索引

此处您要创建一个文本表用于为存储在问题跟踪系统中的附加文件内容建立索引附加文件存储在文件系统中除了应用程序的数据模型所需的列之外文本基表还包括一个绝对文件路径和一个格式列

CREATETABLEfiles( idNUMBERPRIMARYKEY issue_idNUMBER pathVARCHAR()UNIQUE ot_formatVARCHAR()); INSERTINTOfilesVALUES(/tmp/oracletext/found txt NULL); INSERTINTOfilesVALUES(/tmp/oracletext/found doc NULL); INSERTINTOfilesVALUES(/tmp/oracletext/notfound txt IGNORE);

此处 ot_format的值是 Oracle Text在索引过程中解析出来的 NULL值表明系统会为文件自动选择一个过滤器而如果值为 IGNORE系统会跳过整个文件

可以使用以下语句创建文本索引

CREATEINDEXfile_indexONfiles(path)INDEXTYPEISntext PARAMETERS( datastorectxsys file_datastoreformatcolumnot_format);

该语句将启动索引进程索引进程将通过存储在基表中的路径在文件系统中检索文件然后对内容进行过滤并建立索引这样便创建了一个区分大小写并具有精确匹配语义的 CONTEXT索引该索引进程可以多种方式进行自定义例如支持前缀和后缀匹配

虽然大部分时间过滤阶段无需为每个文件指定文件格式即可很好地运行但是在基表中添加这一列可以对索引进程进行进一步控制例如使用格式列您可以跳过某些文件类型不为其建立索引当您只想正式支持应用程序中 Oracle Text所支持的部分文件格式时这一列非常有用

Oracle Text还可用于元数据的全文搜索在示例应用程序中有一个名为 issues用于存储问题元数据的表该表的定义如下

CREATETABLEissues( idNUMBER summaryVARCHAR() descriptionCLOB authorVARCHAR() ot_versionVARCHAR());

ot_version列为索引列可用于强制为特定文档重新建立索引该表可使用测试数据填充

INSERTINTOissuesVALUES( Jane Textdoesnotmaketea OracleTextisunabletomakemorningtea); INSERTINTOissuesVALUES( John Itesinthewrongcolor IwanttohaveTextinpink);

用户索引

Oracle Text可为来自不同数据源的数据建立索引 Oracle Text可用于问题跟踪系统提供对问题元数据的全文搜索在默认情况下您可为单个列中的值建立索引但是如果要合并多个表的数据您需要创建一个自定义的 PL/SQL过滤器过程我将演示如何创建这样的过程这个过程将起到存储抽象的作用然后该索引进程将迭代文本表中所有的行为每一行调用过滤器过程过滤器过程将返回所有与问题相关的有待建立索引的文本

declareindexingprocedure CREATEPACKAGEot_searchAS PROCEDUREissue_filter(ridINROWID tlobINOUTNOCOPYCLOB); ENDot_search;/ defineindexingprocedure CREATEPACKAGEBODYot_searchAS PROCEDUREissue_filter(ridINROWID tlobINOUTNOCOPYCLOB)IS BEGIN FORc IN(SELECTauthor summary descriptionFROMissuesWHERErowid=rid) LOOP dbms_lob writeappend(tlob LENGTH(c summary)+ c summary||); dbms_lob writeappend(tlob LENGTH(c author)+ c author||); dbms_lob writeappend(tlob LENGTH(c description) c description); ENDLOOP; ENDissue_filter; ENDot_search;/ definedatastorepreferenceforissues BEGIN ctx_ddl create_preference( issue_store user_datastore); ctx_ddl set_attribute( issue_store procedure ot_search issue_filter); ctx_ddl set_attribute( issue_store output_type CLOB); END;/ indexissues CREATEINDEXissue_indexONissues(ot_version)INDEXTYPEISntext PARAMETERS( datastoreissue_store);

搜索

CONTAINS运算符用于搜索 CONTEXT索引虽然 CONTAINS运算符语法的确支持 soundex匹配等更高级的功能但在这些示例中我们只用了简单的布尔运算符来合并关键字对于 Oracle Text支持的语言模糊匹配和词根还原都是默认启用的要利用这些高级搜索功能只需将 fuzzy()或$查询运算符分别与 CONTAINS运算符结合使用即可通配符字符可用于前缀和后缀匹配的 CONTAINS查询下面是一些简单的查询示例

SELECTidFROMissuesWHERECONTAINS(ot_version colorANDpink)>; SELECTidFROMissuesWHERECONTAINS(ot_version janeORjohn)>;

索引维护

由于基表数据是由索引复制的因此这些数据需要定期与索引进行同步在 CTX_DDL PL/SQL程序包中可以发现索引维护过程下面给出了一个示例显示如何更新索引以反映基表更改

EXECUTEctx_ddl sync_index( issue_index M);

该同步过程为操作提供了索引名称和使用的内存量也可以让数据库定期自动执行此项任务您也可以选择使用操作系统或其他计划工具来启动同步例如在 Unix系统上可安排以下 shell脚本与 Cron作业使系统按计划执行同步

#!/bin/sh exportORACLE_SID=orcl exportORAENV_ASK=NO source/usr/local/bin/oraenv sqlplusot/ot@XE>synch log< WHENEVERSQLERROREXIT; EXECUTEctx_ddl sync_index( issue_index M); EOF

CTX_DDL程序包还包含其他有用的过程例如索引优化用于消除索引碎片和清除过期的数据

如果出现错误可通过 CTX_USER_INDEX_ERRORS视图跟踪索引错误

数据库根据索引列更改跟踪文档的变更因此如果您希望强制 Oracle Text重新为某些文档建立索引可以更新相应行的索引列如下所示

UPDATEfilesSETpath=pathWHEREid=;

lishixinzhi/Article/program/Oracle/201311/18082

目录搜索是什么意思

什么是目录搜索

国内一般把搜索引擎分为"分类搜索引擎"和"关键词搜索引擎",国外则分别称其为"Directory"和"Search engine"。 Directory是指一种主题分类目录,由人工对网站进行标引和组织(hand-picked web sites organized into categories),提供分类检索;Search engine是基于"蜘蛛"程序的搜索引擎(Spider-Based Search Engine),由程序自动索引网页建立数据库,提供关键词搜索。搜索引擎是工具性实体,分类搜索和关键词搜索是搜索引擎的功能特征和网络信息的检索方法。分类搜索是最早出现的一种网络信息检索方法,主题分类目录的创制已有相当成熟的理论、技术和丰富的成功经验。Yahoo!被认为是分类搜索的鼻祖,Directory的代表,引领着分类搜索的潮流。搜狐(搜狗)开中文分类搜索先河,其"50,000主题分类,500,000优选网站"无愧中文主题分类目录的典范,堪称中文分类搜索的旗舰。 1、何谓分类搜索分类搜索是基于人工标引的检索方法。它以科学、实用的分类目录为工具,以规范化的自然语言为类名,在对网络信息归纳、概括的基础上,以网站为单元,提供经过专家评价和人工整序的网络信息。分类搜索是突出族性特征的检索方法。由于分类目录已按照学科或主题对网络信息进行了标引,所有网站在分类体系中同聚异分,各有所属,"纵向成枝,横向成网",只需"按图索骥",同一类属或相关主题的信息即可"循类以求",适用于查询具有同一特征的多个目标和主题范围广、概念宽泛的问题。分类搜索是关键词搜索不可替代的检索方法。关键词搜索以简单、快捷著称,但庞大的结果列表、大量重复和无用的信息是其永远的伤痛。而分类搜索恰恰独具优势,经过人工编辑的检索结果既以精当、准确著称,又以系统、有效见长。分类搜索是循序渐进的检索方法。与关键词搜索即刻按照相关性递减顺序返回大量结果不同,分类搜索要首先确定所需信息在目录中的类系归属和相关路径,从大类入手,逐级浏览,渐进查询,在相应类目下按字顺展开网站列表,然后再根据网站名称和简介,对结果列表进行选择。分类搜索是门户网站不可缺少的检索方法。互联网上搜索的概念最早来自于门户网站,资深网民对互联网的认识最初几乎全部来自于当年yahoo!提供的分类搜索服务。有关数据显示,我国将近70%以上网民是通过门户网站认识和开始使用搜索引擎的。门户网站是使用搜索引擎的主要平台,搜索引擎也为门户网站带来了巨大的经济利益和访问流量。 2、分类搜索的原理分类搜索的基础和前提是构建一个反映网站相关信息及其URL链接的目录指南(Directory),在这个目录中,经过审核与标引的网站按学科或主题分门别类、有序排列。分类搜索就是在分类目录中,根据所需信息的学科属性或主题内容,逐级检索,循类以求。由于分类目录是以数据库形式存在的,也可以说,分类搜索就是对分类数据库的检索。分类搜索建立在网络分类的基础上,了解分类搜索的原理,不能不首先了解网络分类体系。分类标准、类目划分、类目设置、类目序列等,对分类体系的构建至关重要,决定着分类目录的性质和功能,影响着分类搜索的效率和效果。系统性和实用性是对网络信息分类的基本要求,以学科性质为标准可以保证分类的系统性,以事物主题为......>>

主题目录搜索是什么意思 5分

主题目录在检索信息时具有以下特点。

专指性、直观性、多元性、全面性、集中性。选用的

,大都是各学科所惯用的名词术语,而且直接用

来表达,不受

的限制,直接按

的字顺排。因此,在不确定题名、责任者、分类的情况下,查找主题目录是很方便的。主题目录检索信息所选取的

具有特性特点。

搜索运行DIY目录什么意思

是DIR吧这个是一个命令提示符命令作用是列出这个目录下的文件文件夹

linux中搜索路径是什么意思

搜索路径显然是一系列的路径嘛,,

你有没有发现,在终端中直接输入ls,gcc或者vi这些命令就会直接运行,,而当你写了一个脚本的时候要运行通常要./脚本名,,如果你把你的脚本放到/bin或者/usr/local/bin里就能直接用脚本名来运行了,,

为什么会这样??很简单,,/bin,/usr/local/bin都在搜索路径里面,,当终端里运行一个命令的时候,系统首先就会看看是不是shell命令,不是的话就在搜索路径里查找这个命令,如果还没有就报错了,,

一般搜索路径会保存在变量PATH当中,你终端运行echo$PATH就知道有哪些路径了,,

急全文搜索引擎与目录索引类的区别

全文搜索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。目录索引是类似于垂直搜索引擎,事先按照关键词分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。

MATLAB的搜索路径是什么意思?

是你执行命令时候,matlab识别命令的电脑存储路径,默认存储的路径。

可以更改,你多看看,抚实没有什么的这个。

目录式搜索引擎、全文搜索引擎、元搜索引擎的优缺点分别是什么?

【目录式搜索引擎】

优点:收录网站质量高全人工审核

缺点:死链接较多

【全文搜索引擎】

优点:信息及时又多

缺点:根据各站的技术判定在此不评论

【元搜索引擎】

优点:方便简单快捷可以同珐使用多个搜索引擎

缺点:没有自己的数据库

什么叫检索途径?主要的检索途径有哪几种类型?

1.分类途径

分类途径是指按照文献资料所属学科(专业)类别进行检索的途径,它所依据的是检索工具中的分类索引。

分类途径检索文献关键在于正确理解检索工具的分类表,将待查项目划分到相应的类目中去。一些检索工具如《中文科技资料目录》是按分类编排的,可以按照分类进行查找。

2.主题途径

主题途径是指通过文献资料的内容主题进行检索的途径,它依据的是各种主题索引或关键词索引,检索者只要根据项目确定检索词(主题词或关键词),便可以实施检索。

主题途径检索文献关键在于分析项目、提炼主题概念,运用词语来表达主题概念。主题途径是一种主要的检索途径。

3.著者途径

著者途径是指根据已知文献著者来查找文献的途径,它依据的是著者索引,包括个人著者索引和机关团体索引。4.其他途径

Linux全文搜索实现快速精准的搜索linux全文搜索

Linux是当今使用最广泛,功能最强大的开源操作系统之一。它可以运行在许多不同的硬件和软件平台上,并且提供了一系列强大的工具和服务,以帮助用户执行和完成各种任务。Linux全文搜索是 Linux系统中的一种功能,用于搜索文件、文件夹或目录中的文本字符串。它帮助用户更有效地搜索和定位其系统中的文件和文件夹,从而更好地管理其文件和目录。

Linux全文搜索也可以基于用户限定的条件,在特定的时限内,进行文本文件的搜索,比如搜索制定文件夹里面的特定字符串。这项能力对于系统管理员某些重要且耗时的任务有着多么重要的作用,比如网络和系统安全审计,就能够根据指定关键词在系统日志中搜索关键字,以便来查询可疑的异常事件。

Linux全文搜索的实现可以通过多种方式实现,比如 grep以及正则表达式,它们都可以用于在文本文件中搜索字符串。例如,我们可以使用 grep命令来在一个文件中搜索指定的字符串,如下所示:

$ grep“webpage” index.html

此外,可以使用 awk和 sed命令实现全篇检索搜索,以搜索指定文件中的字符串。另外,使用 vi和 vim编辑器也可以实现 Linux全文搜索,但搜索范围有限,因为他们只能进入到当前编辑窗口中。

而在实际应用中,Linux全文搜索可以基于NoSQL特定的工具,如 MongoDB或 Elasticsearch,实现快速精确的搜索。它们提供了一种可扩展的方式来搜索本地字符串,并能够识别模糊匹配、分词技术和关键字搜索,从而实现全文精准搜索。

总之,Linux全文搜索是 Linux系统中非常有用的功能,它可以帮助用户在文档和文件夹中进行搜索,实现快速精确的搜索。它不仅可以帮助用户更有效地管理文件,还可以帮助系统管理员完成一些重要和复杂的任务,如安全审计。

阅读剩余
THE END