索引markdown文档以在Apache SOLR中进行全文搜索

车丹·尤瓦勒(Chetan Yewale)



我正在使用Apache SOLR索引降价文档。
如您所知,Markdown基本上是纯文本,带有特殊标签,用于加粗和斜体格式。问题是:如果降价具有粗体或斜体格式,则全文搜索将不起作用。但是,如果降价文档没有格式元素(粗体,斜体或标题,链接等),则全文搜索有效。总而言之,当markdown文档与纯文本相同时(即,没有单词具有markdown格式),它可以工作。

我的结论是,在对文档建立索引之前,需要将markdown转换为纯文本。只有这样,全文搜索才能在所有情况下按预期进行。

我在不同的在线论坛上进行了搜索和阅读。我想我需要实现一个自定义分析器。定制分析器需要先将markdown转换为纯文本,然后对其进行索引。我认为这种情况类似于Apache TikaMicrosoft文档的情况。它解析ms office文档并提取纯文本。我想我也需要类似的东西。
我也认为降价文件-我需要解析并转换为纯文本。
我已经找到了一种将markdown转换为纯文本的方法。

但是,我不确定是否真的需要创建自定义分析器。我读了一些自定义分析器的代码-但它们都使用tokenFilters据我了解,tokenFilters该流在每个令牌的基础上进行操作。就我而言,整个markdown语料库必须转换为plain text因此,请为此建议一种方法。

我考虑过的另一种方法是先将markdown转换为纯文本,然后将纯文本连同markdown一起保存到磁盘。但是,我想避免这种情况并在SOLR中处理。我希望SOLR将其转换为纯文本,然后对其进行索引。

  1. 我应该创建一个custom analyzer用于将markdown文档保存plain text吗?还是custom query parser必须的?
  2. 有人可以提供相同的代码示例(伪代码也可以)。

请帮忙。

马特·林德

使用StandardTokenizer-它会分割大多数非数字字符,这应该适合于将Markdown索引为单个术语,而不是保持Markdown语法完整。

该标记器将文本字段拆分为标记,将空格和标点符号视为分隔符。分隔符将被丢弃,但以下情况除外:

不包含空格的句点(点)保留为令牌的一部分,包括Internet域名。

“ @”字符是令牌分隔标点的集合之一,因此电子邮件地址不会保留为单个令牌。

如果您还希望在单词之间分割句点,则可以使用PatternReplaceCharFilterFactory在单词之间插入一个空格,该单词之间用点分隔,不带空格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

apache solr,用于翻译文档索引

锁定特定文档以在 Solr 中进行编辑

ElasticSearch:在数组中进行全文搜索,而忽略文档,其中所查找的文本是数组元素的一部分

在json文档上进行postgresql全文接近(`<->`)搜索

在Solr中进行精确搜索

在Google的Cloud Spanner中进行全文搜索

如何突出显示在 Apache Solr 中编入索引的文档中的搜索文本

索引PDF-使用Apache Solr和Apache Tika进行分面搜索

Apache Lucene 和通过候选词列表在文本文档中进行模糊搜索

SQLAlchemy在多列中进行全文搜索和部分搜索

如何使用Nest ElasticSearch在多个索引中进行搜索?

Apache Nutz没有将所有文档索引到Apache Solr

如何快速在MySQL中的多列中进行全文搜索?

用Mongoose在Node JS中进行全文本搜索

使用Hibernate Ogm在Mongodb中进行全文本搜索

使用Apache Solr进行半自然语言搜索

使用apache solr进行特定列的数据搜索

如何配置Couchbase全文搜索索引以对完整属性进行排序

使用NEST C#在Elastic Search中使用多个索引进行全文本搜索

SOLR:获取与查询匹配的文档的全文内容

为 apache-ubuntu 公共 Web 服务器设置文件索引器和文档检索搜索引擎?

Solr索引:父/子文档

DIH的Apache Solr索引

Postgres /全文搜索,显示文档部分的预览

如何使用QuerySets和MySql“全文搜索”在多个字段中进行Django搜索?

在对象而不是模型中进行Ruby Solr搜索

Apache Solr通过“ AND”搜索

Apache Solr搜索

Apache Solr搜索问题