在SOLR中,我有一个包含id, words (indexed), raw_text
个字段的文档。我想以这种方式搜索words
字段:
单词是文章的不定式(或称关键字)。对于解析和词形还原(词干)我使用另一个工具,所以这不是问题的关键。
例如:对于这两篇文章(文本),单词将是:
1 昨天我没去上班,因为这是假期。
字样:昨天因为假期去上班
2 明天我要去上班,晚上去购物。
字样:明天上班,早上去商店
3 字:明天上班
在搜索“go”时,我想首先检索 2 (更具相关性)因为有更多“go”-s而不是 1 。此外,我想使用更长的查询与大量的单词,并检索文章包含大多数时间。
例如:搜索:“明天工作”将返回 2 比 3 更相关,因为有两个“go” - 与 3
所以问题:我该如何存储words
? multiValued还是单身?应该使用哪种字段类型?
谢谢!
答案 0 :(得分:1)
(单值)text
适合你。
该文本带有标记化,词干分析和停止字分析器。
词干使用启发式来推导单词的根。除此之外,它甚至会以不定式形式找到你文章的根源: - )
Trying it out为您的样品(添加一些):
Original: Yesterday [yesterday's] I didn't go to work [working, workable], because it was holiday [holidays].
Stemmed: Yesterdai yesterdai s I didn t go to work work workabl becaus it wa holidai holidai
Original: Tommorrow I am going [go,going,gone] to work in the morning [mornings] and in the evening I am going shopping [shoppers, shops].
Stemmed: Tommorrow I am go go go gone to work in the morn morn and in the even I am go shop shopper shop
因为它使用启发式,“可行”不与“工作”共享根,而“消失”不与“go”共享根。但它的权衡更简单,更快,而不会降低结果质量。
并且“没有”和“我”是停用词according to this list,因此它们会被自动删除。