作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有过滤器或分词器将单词组合应用于输入?例如,如果我有“Hello Guys How are you?”,它也必须以这种方式索引:“HelloGuys”,“GuysHow”,“Howare”,“areyou”,当我搜索术语“HelloGuys”时,它必须查找具有该字段值的文档。我认为 WordDelimiterGraphFilter 是正确的过滤器,但它划分复合词,它不生成复合词。我正在寻找类似的东西,与 WordDelimiterGraphFilter 相反,谢谢。
最佳答案
您要找的东西叫做带状疱疹。 Solr 有一个 ShingleFilter当 token 出现在 token 流中时,它将 token 连接在一起。如果您正在寻找的话,您可以调整要连接在一起的 token 数量(即 HelloGuysHow
),并更改 token 之间的分隔符(即 Hello_Guys
),如果你想要。
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory"/>
</analyzer>In: "To be, or what?"
Tokenizer to Filter: "To"(1), "be"(2), "or"(3), "what"(4)
Out: "To"(1), "To be"(1), "be"(2), "be or"(2), "or"(3), "or what"(3), "what"(4)
对于您的用例,请使用 tokenSeparator=""
。
关于java - Solr 索引的复合词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51681639/
我是一名优秀的程序员,十分优秀!