首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何索引具有多个词(短语)和词排列的文档?

如何索引具有多个词(短语)和词排列的文档?
EN

Stack Overflow用户
提问于 2015-08-24 04:09:54
回答 2查看 272关注 0票数 0

我需要找到一个解决方案来索引我的基于字典的文档。这本词典收录了300万个短语。我有一个很大的挑战,那就是:我需要基于这个字典对文档进行索引,同时考虑到单词的排列也是可以接受的。

例如:我的字典中有一个短语是“美丽的大花园”,但如果文档中包含“美丽的大花园”,它应该被索引为“美丽的大花园”。我想了很多,但我找不到一个正常的解决方案在solr中,除了使用同义词过滤器和单词排列如下:美丽的大花园=>花园大美丽,美丽的花园大,大美丽的花园,...但这是不可能的,因为我的字典包含300万个短语,其中许多短语超过5个单词,所以计算5!并使同义词过滤器是不可能的。有没有人能帮我出个好主意,我是solr的初学者,应该有办法的。

提前感谢Afrooz

EN

回答 2

Stack Overflow用户

发布于 2015-08-24 04:13:17

无论是在字典中还是在查找潜在的匹配项时,都要按字母顺序对短语进行排序。这样你只需要检查一个排列。

票数 0
EN

Stack Overflow用户

发布于 2015-08-24 23:39:38

一个简单的解决方案是将solr中的默认操作更改为AND。您也可以在查询中在请求处理程序中指定相同的值。

在查询中使用:

代码语言:javascript
复制
q.op=AND

在搜索处理程序中更新:

代码语言:javascript
复制
<requestHandler name="/select_and" class="solr.SearchHandler">
  <lst name="defaults">
    <str name="q.op">AND</str>

您可以通过空格将输入文本拆分为标记,然后使用每个带有AND运算符的术语构成查询。例如:

代码语言:javascript
复制
input text: beautiful big garden
search query: q=field:beautiful AND field:big AND field:garden

使用以下FieldType为您的数据建立索引:

代码语言:javascript
复制
<fieldType name="text_general" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32171008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档