Solr:将搜索词映射到筛选器
我正在创建一个基于Solr4.3.0的搜索引擎。 我的用户应该被允许在同一搜索字段中输入位置,例如纽约,就像他们输入其他搜索关键字,例如餐厅一样。 我有一份可能的地点清单。 我可以捕捉这些位置并将它们映射到一个字段吗?Solr:将搜索词映射到筛选器,solr,Solr,我正在创建一个基于Solr4.3.0的搜索引擎。 我的用户应该被允许在同一搜索字段中输入位置,例如纽约,就像他们输入其他搜索关键字,例如餐厅一样。 我有一份可能的地点清单。 我可以捕捉这些位置并将它们映射到一个字段吗? 最后,我想显示一个链接:您将位置设置为纽约,如果您想删除过滤器,请单击纽约。后者在Solr中是标准的-但我没有映射的方法…没有概念搜索的一种可能方法是生成所有可能的查询,就像这样 SearchBox=旧金山咖啡馆 您应该创建类似这样的查询 BooleanQuery
最后,我想显示一个链接:您将位置设置为纽约,如果您想删除过滤器,请单击纽约。后者在Solr中是标准的-但我没有映射的方法…没有概念搜索的一种可能方法是生成所有可能的查询,就像这样 SearchBox=旧金山咖啡馆 您应该创建类似这样的查询
BooleanQuery
Occur1 q=cafe&fq=san
Occur2 q=cafe san&fq=francisco
Occur3 q=cafe san francisco&fq=empty
...
OccurN q=cafe&fq=san francisco
...
etc
并将它们放在应该发生的位置
所以,你会有很多侥幸成功的结果,但至少它应该是你的一个开始
相关文章/文件
-看看BooleanQuery
-总的来说,关于概念搜索,这将是您的最佳解决方案,但实施起来会困难得多您想获取位置字段的所有可能值并将其显示在UI上吗?不,例如,用户搜索纽约。我现在想去纽约。solr Qor的正常行为是将q=餐厅送到纽约。我希望Solr发送:q=餐厅&fq:locationField=纽约,而不是。所以,您希望用户输入他们的位置,然后应用fq?如果是,这就是你想要的,我无法理解你的问题。只需读取位置并创建fq参数等于NYyes的SolrQuery,但在哪里读取位置?钩子在哪里?请考虑一下,我只想要1个搜索字段,用于所有可能的关键词…哦,我明白了。你需要概念搜索,我想:在我们公司,我们最近刚刚运行概念搜索的挑逗。让我在答案中写下可能的方法