【发布时间】:2012-04-28 12:34:10
【问题描述】:
我在使用 Lucene 索引时遇到问题,该索引的索引词包含“-”字符。
它适用于某些包含“-”的单词,但不适用于所有单词,我找不到原因,为什么它不起作用。
我正在搜索的字段经过分析并包含带有和不带有“-”字符的单词的版本。
我正在使用分析器:org.apache.lucene.analysis.standard.StandardAnalyzer
这里是一个例子:
如果我搜索“gsx-*”我得到一个结果,索引字段包含 “铃木 GSX-R 1000 GSX-R1000 GSXR”
但如果我搜索“v-*”,我没有得到任何结果。预期结果的索引字段包含: “铃木 DL 1000 V-STROM DL1000V-STROMVSTROM V STROM”
如果我在没有“*”的情况下搜索“v-strom”,它可以工作,但如果我只搜索“v-str”,例如我不会得到结果。 (应该有结果,因为它是针对网上商店的实时搜索)
那么,两个预期结果之间有什么区别?为什么它适用于“gsx-”而不适用于“v-”?
【问题讨论】:
-
有趣,我使用 Solr 并驱动 V-Strom 650 :)
-
您是否真的检查过索引字段的内容,或者您只是希望它是这样的?如果不使用有史以来最强大的 Lucene 索引工具 - Luke:code.google.com/p/luke
-
是的,我显示的字段与我正在搜索的字段相同
标签: java lucene indexing escaping character