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。
我正在使用 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。