หากคุณใช้ SolrSharp จะไม่รองรับการสืบค้นเชิงลบ
คุณต้องเปลี่ยน QueryParameter.cs (สร้างพารามิเตอร์ใหม่)
private bool _negativeQuery = false;
public QueryParameter(string field, string value, ParameterJoin parameterJoin = ParameterJoin.AND, bool negativeQuery = false)
{
this._field = field;
this._value = value.Trim();
this._parameterJoin = parameterJoin;
this._negativeQuery = negativeQuery;
}
public bool NegativeQuery
{
get { return _negativeQuery; }
set { _negativeQuery = value; }
}
และในคลาส QueryParameterCollection.cs การแทนที่ ToString () จะดูว่าพารามิเตอร์ Negative เป็นจริงหรือไม่
arQ[x] = (qp.NegativeQuery ? "-(" : "(") + qp.ToString() + ")" + (qp.Boost != 1 ? "^" + qp.Boost.ToString() : "");
เมื่อคุณเรียกผู้สร้างพารามิเตอร์หากเป็นค่าลบ เปลี่ยนที่เหมาะสมง่ายๆ
List<QueryParameter> QueryParameters = new List<QueryParameter>();
QueryParameters.Add(new QueryParameter("PartnerList", "[* TO *]", ParameterJoin.AND, true));