solr 从索引中排除 html class

solr exclude html class from indexing

我正在使用 solr 索引知识库。问题是,菜单也已编入索引,因此搜索菜单中使用的术语 returns 所有页面。
我能以某种方式告诉 solr 从索引中排除特殊的 html class 吗?
HTML-标签被移除,所以我以后找不到指定的元素。


编辑:
我为我想要实现的目标添加了一个简短示例。
也就是说,将某些 html 节点(如我的导航)从 beeing 索引中排除。

样本html:

<nav>
    <ul>
        <li>topic-1</li>
        <li>topic-2</li>
        <li>topic-3</li>
    </ul>
</nav>
<main>
    <h1>Topic-1</h1>
    <p>Lorem ipsum dolor sit ament...</p>
</main>

我目前从中得到的索引:

topic-1
topic-2
topic-3

Topic-1
lorem ipsum dolor sit ament...

我想在我的索引中得到什么:

Topic-1
lorem ipsum dolor sit ament...

使用 HTMLStripCharFilterFactory,它将去除 HTML 个标签:

<analyzer>
  <charFilter class="solr.HTMLStripCharFilterFactory"/>
  <tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>

让我知道它是否适合你。

在这里您可以找到更多相关信息。

https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.HTMLStripCharFilterFactory

使用 XPathEntityProcessor 提取文档的子集,与提供的 XPath 模式相匹配。

这样您就可以在页面中索引您想要的实际内容(只要它有效 XML),并忽略其他常见内容,例如 headers/footers/etc。还有。

您基本上是想删除一些文本。您可以使用 PatternReplace Character Filter 在字段本身上执行此操作,它位于字段类型定义中的 Tokenizer 之前。不过,这会将其保留在该字段的存储版本中。

或者,您可以更早地进行索引编制过程,并使用 UpdateRequestProcessor 修改该字段,甚至在查看该字段以进行索引编制之前。为此,您需要 RegexReplace URP