ApacheSolr中全文搜索的索引标记文档

ApacheSolr中全文搜索的索引标记文档,solr,full-text-search,markdown,apache-tika,full-text-indexing,Solr,Full Text Search,Markdown,Apache Tika,Full Text Indexing,我正在使用ApacheSolr为降价文档编制索引。 正如您所知,标记基本上是纯文本,带有用于设置粗体和斜体格式的特殊标记。 问题是:如果标记有粗体或斜体格式,则全文搜索不起作用。但是,如果降价文档没有格式元素(粗体、斜体或标题、链接等),则全文搜索可以工作。当标记文档与纯文本相同(即没有单词具有任何标记格式)时,可以对其进行总结 我的结论是,在为文档编制索引之前,我需要将标记转换为纯文本。只有这样,全文搜索才能在所有情况下按预期工作。 我在不同的在线论坛上做了一些搜索和阅读。我想我需要实现一个



我正在使用ApacheSolr为降价文档编制索引。
正如您所知,标记基本上是纯文本,带有用于设置粗体和斜体格式的特殊标记。 问题是:如果标记有粗体或斜体格式,则全文搜索不起作用。但是,如果降价文档没有格式元素(粗体、斜体或标题、链接等),则全文搜索可以工作。当标记文档与纯文本相同(即没有单词具有任何标记格式)时,可以对其进行总结

我的结论是,在为文档编制索引之前,我需要将标记转换为纯文本。只有这样,全文搜索才能在所有情况下按预期工作。

我在不同的在线论坛上做了一些搜索和阅读。我想我需要实现一个自定义分析器。自定义分析器需要首先将标记转换为纯文本,然后对其进行索引。 我认为这种情况与ApacheTika对microsoft文档所做的类似。它解析ms office文档并提取纯文本。 我想我需要做类似的事情。
我认为对于降价文档,我也需要解析并转换为纯文本
我已经找到了一种将降价转换为纯文本的方法

但是,我不确定是否真的需要创建自定义分析器。我读了一些自定义分析器的代码,但它们都使用
标记过滤器
。据我所知,
tokenFilters
以令牌为基础对流进行操作。在我的例子中,整个
标记
语料库必须转换为
纯文本
。因此,请建议一种方法。

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

  • 我是否应该创建一个
    自定义分析器
    ,用于将
    标记
    文档保存到
    纯文本
    ?或者是否需要
    自定义查询解析器
  • 是否有人能给出相同的代码示例(伪代码也可以)
  • 请帮忙

    -它将在大多数非数字字符上拆分,这应该适合将标记作为单个术语索引,而不是保留完整的标记语法

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

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

    “@”字符是一组标记拆分标点符号,因此电子邮件地址不会作为单个标记保留

    如果您还想在单词之间拆分句点,可以使用
    在用点分隔的单词后插入空格,不带空格。

    我看不出为什么a不能为您提供适当的无标记标记标记(因为它会拆分并删除大多数非字母数字字符)。它会吐出降价语法的哪一部分?@MatsLindh,我发现了问题所在。我只使用了
    空白分析器
    WhiteSpaceAnalyzer
    只是基于空白进行标记,而不是基于标记中的*或##等特殊字符。我看到,对于我的用例-
    StandardTokenizerFactory
    是完美的-正如您所提到的,标记器将打破空白以及非字母数字字符。我已经做了这个改变,现在搜索工作正如期进行。