我正在搜索仅与以搜索键开头的句子匹配的数据。
前任:
search key "what"
结果:想要的一个
**what** is your name
**what** are you doing
**what** is that
etc.
我现在的情况是
Is that **what** you want
some text before **what**
etc.
我也在使用 EdgeNGram。但它给了我第二个。任何帮助表示赞赏....
我正在搜索仅与以搜索键开头的句子匹配的数据。
前任:
search key "what"
结果:想要的一个
**what** is your name
**what** are you doing
**what** is that
etc.
我现在的情况是
Is that **what** you want
some text before **what**
etc.
我也在使用 EdgeNGram。但它给了我第二个。任何帮助表示赞赏....
您可以使用正则表达式“以查询开头”q:(name:/what.*/)
将产生名称字段以“什么”开头的结果
我认为您正在使用 WhitespaceTokenizer。您应该尝试从左端使用 KeywordTokenizer 和 EdgeNGram。
如果您尝试实现自动建议,请查看Suggester组件。
我认为您可以使用以下技巧:将以下行添加到您的字段定义中:
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="^(.*)$" replacement="AAAA $1" />
这会将“AAAA”标记添加到您的索引和查询中。这样您就可以匹配索引字符串的开头。
更多信息在这里: