【发布时间】:2010-08-31 19:28:09
【问题描述】:
您好,我正在使用 lucene 构建一个搜索应用程序。我的一些查询很复杂。例如,我的文档包含字段位置和人口,其中位置是未分析的字段,人口是数字字段。现在我需要返回位置为“san-francisco”且人口在 10000 到 20000 之间的所有文档。如果我结合这两个字段并构建这样的查询:
位置:旧金山和人口:[10000 到 20000],我没有得到正确的结果。关于为什么会发生这种情况以及我能做什么的任何建议。
此外,在构建复杂查询时,我包含的某些字段会被分析,而其他字段则不会被分析。例如 location 字段没有被分析并且包含诸如芝加哥、旧金山等术语。在分析摘要字段时,它通常包含一个描述性段落。
考虑这个查询:
location:san-francisco AND 摘要:“很棒的餐厅”
现在,如果我在搜索时使用 StandardAnalyzer,当位置字段包含诸如 san-francisco 或 los-angeles 之类的术语时(即它无法处理中间的连字符),但如果我使用关键字分析器,我不会得到正确的结果对于查询,我也没有得到正确的结果,因为它无法在摘要字段中搜索短语“great restaurant”。
【问题讨论】: