【发布时间】:2014-06-26 18:20:29
【问题描述】:
如上是我的索引结构:我想使用solr自动完成获取制造商对应的模型。假设我通过了 applianceCatagory=Boilers、manufacturer=ariston 和查询字符串为“cla”,那么所有与 ariston 制造相对应的模型都应该得到显示。我做了一些 java 编码来获取下面给出的值:但我只能获取如果我传递小写查询字符串,则以小写字符开头的模型也一样:请帮助!谢谢一声。
<i>{
"manuals": [
{
"applianceCategory": "Boilers",
{
"manufacturer": "Ariston",
{
"models": [
"CLAS HE 24 evo",
"CLAS HE 30 evo",
"LAP HE System 24 evo",
"LAST HE System 30 evo"
"clas HE",
"cLAS ba",
],
}
"manufacturer": "Baxi",
{
"models": [
"Baxi 1",
"Baxi 2",
"CLAS 3"
],
}
},
}
{
"applianceCategory": "Electrics",
{
"manufacturer": "Lipton",
{
"models": [
"PLAS HE",
"PLAS HE 30",
"PLAS HE 38 evo",
"PLAS HE Sm 18 evo",
"PLAS HEm 24 evo",
"PLAS HE Syst"
],
}
},
}
]
}
Java Code:
private static void getModelValues(SolrServer server,String queryString) throws SolrServerException{
SolrQuery query = new SolrQuery();
query.setParam("wt", "json");
query.setQuery("Boilers").setQuery("Ariston");
query.setFacet(true);
query.addFacetField("models");
query.setFacetMinCount(1);
query.setFacetPrefix(queryString);
QueryResponse response = server.query(query);
List<FacetField> facetField = response.getFacetFields();
List<String> listofModel=null;
for (int j = 0; j < facetField.size(); j++) {
listofModel = new ArrayList<String>();
for(Count count: facetField.get(j).getValues()){
listofModel.add(count.getName());
}
System.out.println("This is the model list---->"+listofModel);
Gson gson1 = new Gson();
System.out.println("Models:"+gson1.toJson(listofModel));
}
}
<field name="manufacturer" type="string" indexed="true" stored="true" required="true" multiValued="true" docValues="true" />
<field name="models" type="string" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" required="true" multiValued="true" docValues="true" />
<field name="applianceCategory" type="string" indexed="true" stored="true" required="true" multiValued="true" docValues="true" />
<field name="manual" type="string" indexed="true" stored="true" required="true" multiValued="false" docValues="true" />
<field name="models_autocomplete" type="text_autocomplete" indexed="true" stored="true" multiValued="true"/>
<!--Copy field -->
<copyField source="manufacturer" dest="text"/>
<copyField source="models" dest="models_autocomplete"/>
<copyField source="applianceCategory" dest="text"/>
<copyField source="manual" dest="text" />
</i>
【问题讨论】:
-
请向我们展示您的 solr 架构
-
嗨@omu_negru 我已将我的架构代码放在代码的末尾..请看一下..提前谢谢
-
架构定义看起来不错。也请链接配置文件。我需要查看默认查询字段和查询解析器的类型
标签: solr autocomplete