查询没有 html 标签的 solr?
query solr without html tags?
我已经向 Solr 发送了以下数据:
{
"id":"kkk",
"name":"<div>book</div>"
}
solr接收到数据后,如果我搜索"div",结果不显示,但是当我搜索"book"时,结果会显示,我该怎么办?
这是我的架构:
<field name="name" type="text_html" indexed="true" stored="true"/>
<fieldType name="text_html" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
/>
</analyzer>
</fieldType>
solr做索引的时候只能去掉html标签,如果想直接把数据发给solr,怎么去掉html标签?
您在字段 name
中看到的作为 Solr 查询结果的内容并不是 Solr 真正索引的内容。
<charFilter class="solr.HTMLStripCharFilterFactory"/>
过滤器将删除 HTML 个标签。
只有filters/tokenizers全部执行完内容才真正被Lucene索引。
查看 Solr Admin Analysis Tool 以更好地了解正在发生的事情。
总之,每个字段有两个内容:
- 存储的内容 (
stored="true"
),它是传递给索引的源文本(当文档匹配查询约束时返回给用户。
- 一个索引内容(
indexed="true"
)是经过token/filters处理后的源内容,然后用于信息检索部分。
AFAIK,处理后无法修改存储的(源)内容,因为这是字段的源,所以如果你想修改源,只需在提交给 Solr 之前准备好。
我已经向 Solr 发送了以下数据:
{
"id":"kkk",
"name":"<div>book</div>"
}
solr接收到数据后,如果我搜索"div",结果不显示,但是当我搜索"book"时,结果会显示,我该怎么办? 这是我的架构:
<field name="name" type="text_html" indexed="true" stored="true"/>
<fieldType name="text_html" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
/>
</analyzer>
</fieldType>
solr做索引的时候只能去掉html标签,如果想直接把数据发给solr,怎么去掉html标签?
您在字段 name
中看到的作为 Solr 查询结果的内容并不是 Solr 真正索引的内容。
<charFilter class="solr.HTMLStripCharFilterFactory"/>
过滤器将删除 HTML 个标签。
只有filters/tokenizers全部执行完内容才真正被Lucene索引。
查看 Solr Admin Analysis Tool 以更好地了解正在发生的事情。
总之,每个字段有两个内容:
- 存储的内容 (
stored="true"
),它是传递给索引的源文本(当文档匹配查询约束时返回给用户。 - 一个索引内容(
indexed="true"
)是经过token/filters处理后的源内容,然后用于信息检索部分。
AFAIK,处理后无法修改存储的(源)内容,因为这是字段的源,所以如果你想修改源,只需在提交给 Solr 之前准备好。