Solrj scala:如何查询可能不存在的字段?

Solrj scala:如何查询可能不存在的字段?,scala,solr,solrj,Scala,Solr,Solrj,当我们在scala中使用Solrj时,什么是查询文档中可能不存在的字段值的好方法?获得选项[Any]的响应将是理想的选择。若它是一个多值字段,那个么获取空列表将是理想的选择 现在我得到了NullPointerException: import org.apache.solr.client.solrj.SolrQuery import org.apache.solr.client.solrj.impl.CloudSolrClient import org.apache.solr.client.so

当我们在scala中使用Solrj时,什么是查询文档中可能不存在的字段值的好方法?获得
选项[Any]
的响应将是理想的选择。若它是一个多值字段,那个么获取空列表将是理想的选择

现在我得到了NullPointerException:

import org.apache.solr.client.solrj.SolrQuery
import org.apache.solr.client.solrj.impl.CloudSolrClient
import org.apache.solr.client.solrj.request.QueryRequest
import org.apache.solr.common.SolrDocument
import scala.collection.JavaConversions._

val solrClientBuilder = new CloudSolrClient.Builder
val client: CloudSolrClient = solrClientBuilder.withZkHost("zookeeper.myhost.net:2181").build()

client.setDefaultCollection("skus")
client.setIdField("sku")

val solrQuery = new SolrQuery()
solrQuery.setQuery(s"sku:13614994")
solrQuery.setFields("inventoryLevel, skuCCs") // skuCCs might not be present in document
val params = new QueryRequest(solrQuery).getParams

val solrDocumentList: List[SolrDocument] = for {
  doc <- client.query(solrAlias, params).getResults.toList
} yield doc.asInstanceOf[SolrDocument]

val inventoryLevel: String = solrDocumentList.map(
  _.getFieldValue("inventoryLevel").toString
).headOption.getOrElse("unknown")

// this throws NullPointerException if there is no such field in document:
val skuCCs: List[String] = for {
  doc <- solrDocumentList
  skuCC <- doc.getFieldValues("skuCCs").toList
} yield skuCC.toString
import org.apache.solr.client.solrj.SolrQuery
导入org.apache.solr.client.solrj.impl.CloudSolrClient
导入org.apache.solr.client.solrj.request.QueryRequest
导入org.apache.solr.common.SolrDocument
导入scala.collection.JavaConversions_
val solrClientBuilder=新的CloudSolrClient.Builder
val client:CloudSolrClient=solrClientBuilder.withZkHost(“zookeeper.myhost.net:2181”).build()
client.setDefaultCollection(“SKU”)
客户端设置域(“sku”)
val solrQuery=new solrQuery()
setQuery(s“sku:13614994”)
setFields(“inventoryLevel,skuCCs”)//文档中可能不存在skuCCs
val params=new QueryRequest(solrQuery).getParams
val solrDocumentList:List[SolrDocument]=for{
doc找到了

val skuCCs: List[String] = for {
  doc <- solrDocumentList
  name <- doc.getFieldNames
  if name == "skuCCs"
  skuCC <- doc.getFieldValues(name).toList
} yield skuCC.toString
val skuCCs:List[String]=for{
doc找到了

val skuCCs: List[String] = for {
  doc <- solrDocumentList
  name <- doc.getFieldNames
  if name == "skuCCs"
  skuCC <- doc.getFieldValues(name).toList
} yield skuCC.toString
val skuCCs:List[String]=for{
医生