1

我正在搜索仅与以搜索键开头的句子匹配的数据。

前任:

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。但它给了我第二个。任何帮助表示赞赏....

4

3 回答 3

2

您可以使用正则表达式“以查询开头”q:(name:/what.*/)将产生名称字段以“什么”开头的结果

于 2018-07-12T18:09:18.030 回答
1

我认为您正在使用 WhitespaceTokenizer。您应该尝试从左端使用 KeywordTokenizer 和 EdgeNGram。

如果您尝试实现自动建议,请查看Suggester组件。

于 2013-05-10T08:01:32.063 回答
0

我认为您可以使用以下技巧:将以下行添加到您的字段定义中:

<charFilter class="solr.PatternReplaceCharFilterFactory"
  pattern="^(.*)$" replacement="AAAA $1" />

这会将“AAAA”标记添加到您的索引和查询中。这样您就可以匹配索引字符串的开头。

更多信息在这里:

于 2016-02-25T06:57:12.400 回答