使用Solr从段落中进行短语匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Solr从段落中进行短语匹配相关的知识,希望对你有一定的参考价值。

我有一份国家/地区的文件/名单。

id:国家名称:[伯利兹,贝宁,不丹,玻利维亚,波斯尼亚,波斯尼亚黑塞哥维那,博茨瓦纳,巴西,文莱]

如果我的问题是“我住在波斯尼亚黑塞哥维那”,或者更普遍的是“*波斯尼亚黑塞哥维那*”,那么我希望看到国家作为查询结果。

我只能管理单字国家。谁能帮我解决这个问题?提前致谢。

编辑:

这是该字段的架构配置。 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> 和我这样搜索:http://localhost:8983/solr/core/select?q=i love Bosnia Herzegovina&wt=json

答案

我解决了这个问题。实际上问题出在搜索查询中。我们必须使用一对第一个括号嵌入查询。这将解决问题。

之前:http://localhost:8983/solr/core/select?q=i love Bosnia Herzegovina&wt=json

解决:http://localhost:8983/solr/core/select?q=(i love Bosnia Herzegovina)&wt=json

以上是关于使用Solr从段落中进行短语匹配的主要内容,如果未能解决你的问题,请参考以下文章

Solr 建议最常见的结果而不返回整个短语

Solr查询解析器大全

如何在 Spring Data Solr 1.0 中搜索短语

Laravel 搜索数据库表以从查询中进行部分匹配

solr的schema.xml字段类型都有哪些

在SOLR中搜索邻近另一个标记的短语