我使用Lucene.net3.0.3,我不明白停止词应该如何在查询中工作。
我将此文本作为输入:停止单词
我使用StandardAnalyzer(Version.LUCENE_30)进行索引和查询。索引有一个字段标题
该字段设置为存储和分析。我也玩过不同的TermVector。对于查询解析,我使用简单的QueryParser。解析和
这就是问题所在:
标题:停止单词
返回文档-这很好Title:stop word
的查询不会返回文档-我期待它,因为stop words已从索引中删除
然后我切换到LUCENE_24,第二个查询实际上返回文档。
我明白停止词从索引中删除,可能从查询中删除,但似乎我错过了一些基本的东西。
虽然在分析过程中确实删除了该单词,但2.9之后的默认行为似乎是启用位置增量。因此,虽然单词被删除并且不会影响分数,但在短语查询中,预计“stop”和“word”之间会有一个(删除的)术语。在Lucene 2.4中,此功能存在,但默认情况下已关闭。您可以在StopFilter的实现中看到这一点。getEnablePositionIncrementsVersionDefault
:
public static boolean getEnablePositionIncrementsVersionDefault(Version matchVersion) {
return matchVersion.onOrAfter(Version.LUCENE_29);
}
例如,如果你尝试搜索“停止进入word”,我希望你会看到3.0版本的热门。
Position增量属性留档简要给出了这个想法:
将其设置为大于1的值以禁止精确的短语匹配。例如,如果不希望短语在删除的停止词之间匹配,则可以构建一个停止词html" target="_blank">过滤器,删除停止词,并将增量设置为每个不停止词之前删除的停止词数量。然后,精确的短语查询只有在术语出现且没有中间停止词时才会匹配。
问题内容: 我正在使用并希望elasticsearch返回搜索的单词而不仅仅是点击。当我搜索单词并且模糊搜索找到单词时,我想知道是谁找到了它。 数据: 查询: 该查询将返回,但不知道是否找到它。 有人知道该怎么做或一个主意吗?我希望输出为。 问题答案: 您可以为此命名查询,方法是为每个查询命名。在结果中,每个匹配都将包含一个数组,其中包含匹配的查询的名称(例如及以下)。
我正在用Hibernate Search 4.5.1和Spring 4.0.5版本构建一个应用程序。我正在尝试索引以下类: 我正在构建一个junit测试用例,看起来如下所示: 我还注意到在luke lucene上,一些索引词的长度最多为6个字符,例如,一首歌的艺术家是“后代”,而索引中存储的词是“the”和“offspr”。第一个可以,但第二个不应该是“后代”。为什么要截断名字?
我试图用一个词作为查询来查找匹配项,但它似乎找不到。我正在使用标准分析仪,但找不到准确的结果。 我的索引文档是: 如果使用通配符查询: 它会返回内容:“敏捷的棕色狐狸跳过懒惰的狗” 如果使用术语查询: 它会返回内容:“敏捷的棕色狐狸跳过懒惰的狗” 现在,我想用“狐狸”作为我的新名词 但是我不知道哪个是正确的查询,或者如何做。我已经尝试了QueryParser、TermQuery和MultiPhra
我正在努力在我们的应用程序中集成Lucene。Lucene目前正在工作,例如当我搜索“上传”时,文档中有一些叫做“上传”的文本,那么它就工作了,但是当我搜索“上传”时,那么它就不工作了。有什么想法吗? 代码: 谢谢你。
问题内容: 我正在尝试使用Apache Lucene创建可搜索的电话/本地业务目录。 我有街道名称,公司名称,电话号码等字段。我遇到的问题是,当我尝试按街道名称中包含多个单词(例如“新月”)的街道进行搜索时,没有返回结果。但是,如果我尝试仅用一个词(例如“新月”)进行搜索,那么我会得到所有想要的结果。 我正在使用以下索引数据: 我的搜索是这样的: 我尝试过将通配符查询替换为短语查询,首先将整个字符
我有以下问题:有几个文本文档需要解析和创建索引,但没有停止词和词干。我可以手动操作,但我从一位同事那里听说Lucene可以自动操作。我在网上搜索了很多我尝试过的例子,但是每个例子都使用了不同版本的lucene和不同的方法,没有一个例子是完整的。在这个过程结束时,我需要计算集合中每个术语的tf/idf。 更新:我现在已经用一个文档创建了一个索引。doc没有停止词,并且有词干。如何使用lucenc计算