nab*_*und 1 solr django-haystack
我是Solr的新手并且没有Java技能,所以也许我错过了一些东西......我试图让Solr从内容中剥离HTML,使用以下CharFilter:
http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.HTMLStripCharFilterFactory
这就是我将它包含在schema.xml中的方式:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
</fieldType>
<fields>
<field name="text" type="text" indexed="true" stored="true" multiValued="false" />
</fields>
Run Code Online (Sandbox Code Playgroud)
如果我使用Solr管理面板上的分析器查询"d'Hèrcules",我会得到一个匹配项(请参阅字段):
<doc>
<long name="comment_count">0</long>
<str name="ct_model_name">theatre</str>
<str name="django_ct">timeout.work</str>
<str name="django_id">2535</str>
<bool name="family">false</bool>
<long name="hits">0</long>
<str name="id">timeout.work.2535</str>
<str name="name">Les aventures d'Hèrcules</str>
<arr name="parent_sections">
<str>Escena</str>
</arr>
<long name="rating">0</long>
<bool name="recommended">false</bool>
<arr name="sections">
<str>Escena - Infantil</str>
</arr>
<str name="text">
Les aventures d'Hèrcules Jordi Andújar <p>Prepareu-vos per viatjar a l’antiga Grècia on coneixereu l’heroi més gran de tots els temps: l’Hèrcules. De viatge cap a l’Olimp, l’heroi viurà les més increïbles aventures, lluitarà amb bèsties ferotges i perillosos monstres, i s’enfrontarà a la maldat de la temible deessa Hera. Per a tota la família</p>
</str>
...
</doc>
Run Code Online (Sandbox Code Playgroud)
但我需要通过搜索非HTML实体形式来匹配:例如,在这种情况下,将是"l'Hèrcules"(注意单引号).
我究竟做错了什么?
顺便说一句,我使用django-haystack,如果这个信息以任何方式有用.
提前致谢,
赫克托
你在Solr方面做得很好,你唯一应该注意的是Solr存储和Solr索引之间存在差异.Solr无需修改任何内容即可存储数据,而通过分析器链,您可以更改Solr索引数据的方式.因此,您实际上是在告诉Solr从索引中删除任何html标记并用相关字符替换html实体,但Solr将始终在您提交它们时返回它们.
你可以搜索d'Hèrcules或者d'Hèrcules你应该得到相同的结果,因为你HtmlStripCharFilterFactory甚至在查询时都被解雇了,所以你基本上d'Hèrcules在两种情况下提交相同的查询因为'转换为'.
你的搜索l'Hèrcules让我觉得文档中l和Hercules文档之间的非转义字符不是'看起来非常相似的东西.我想你应该检查一下.
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |