Lucene 什么是QueryParser';接近搜索的语法是什么?

Lucene 什么是QueryParser';接近搜索的语法是什么?,lucene,information-retrieval,query-parser,Lucene,Information Retrieval,Query Parser,我一直在尝试使用Lucene 3.6实现近距离搜索。我选择了span-arquery,这几乎帮了我的忙,但我的老师说QueryParser可以用更好的方式来做(它还可以使用分析器过滤查询,不像span-arquery)。谁能告诉我这个查询的语法吗?最近几个小时我一直在网上搜索(你看了吗?是的,我看了,但它对我不起作用,更可能是我犯了一些错误。下面是我做的:QueryParser QueryParser=newqueryparser(Version.LUCENE_36,“myField”,anal

我一直在尝试使用Lucene 3.6实现近距离搜索。我选择了
span-arquery
,这几乎帮了我的忙,但我的老师说
QueryParser
可以用更好的方式来做(它还可以使用分析器过滤查询,不像
span-arquery
)。谁能告诉我这个查询的语法吗?最近几个小时我一直在网上搜索(

你看了吗?

是的,我看了,但它对我不起作用,更可能是我犯了一些错误。下面是我做的:
QueryParser QueryParser=newqueryparser(Version.LUCENE_36,“myField”,analyzer);Query Query=QueryParser.parse(“word1 word2~1”);
它在运行时给出了关于模糊搜索的错误信息。但是如果我把“~1”在字符串之后,我的Eclipse给出了语法错误。你能帮我解释一下语法吗?你需要在你的查询字符串中添加引号。你写的引号只是让Java理解你写的是一个普通的字符串,但是它会将它读作
word1 word2~1
(不带引号),你需要写
queryParser.parse(\”word1 word2)\“~1”)
(反斜杠是用来转义的,这样Java就不会把它们解释为字符串的结尾谢谢。它很有效。顺便说一句,它不是更像一个“双字索引”吗?我用了两个术语,并提到了它们允许的最大距离,用了和其他术语。谢谢你的回答。:)我想出了让我的三字、四字查询也能工作的方法。它很简单。查询字符串是这样的
“\'word1 word2\”~1和\'word3\”~0和\'word4\“~0”
。它可能会在将来帮助某人。:)