目前我正在尝试使用MinHash集成Jaccard相似性搜索,我偶然发现了solr的8.11 MinHash Query Parser,它在文档中写道:
这些查询测量查询字符串和MinHash字段之间的Jaccard相似性
如何正确实施?
如文档所述,我添加了<fieldType>
和<field>
,如下所示:
<field name="min_hash_analysed" type="text_min_hash" multiValued="false" indexed="true" stored="false" />
<fieldType name="text_min_hash" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.ICUTokenizerFactory"/>
<filter class="solr.ICUFoldingFilterFactory"/>
<filter class="solr.ShingleFilterFactory" minShingleSize="5" outputUnigrams="false" outputUnigramsIfNoShingles="false" maxShingleSize="5" tokenSeparator=" "/>
<filter class="org.apache.lucene.analysis.minhash.MinHashFilterFactory" bucketCount="512" hashSetSize="1" hashCount="1"/>
</analyzer>
</fieldType>
我厌倦了将一些文本保存到新的min_hash_analysed
字段,然后尝试使用文档中提供的查询来查询非常相似的文本。
{!min_hash field="min_hash_analysed" sim="0.5" tp="0.5"}Very similar text to already saved document text
我希望找回所有相似度高于sim="0.5"
的文档,但无论我得到什么"numFound":0
我肯定做错了什么。我应该如何正确地集成Solr的MinHash查询解析器?
1条答案
按热度按时间n9vozmp41#
根据响应,您似乎是直接将
{!min_hash field..}
作为查询参数发送,而不是作为q=
参数给出的 *Solr查询 * 发送。..将是URL中的正确语法(并根据需要应用URL转义)。