How to search by multi Category IDs with OR Boolean opeeation at Lucence

StackOverflow https://stackoverflow.com/questions/23297109

  •  09-07-2023
  •  | 
  •  

문제

How to search by multi Category IDs with OR Boolean opeeation at Lucence

We have CategoryID as field at Lucene index, when we are using single value to search in CategoryID field, it is working fine but if we are passing multi values the search doesn't return a values

Example:
Category IDs = 10, 20, 30

Search Data:
Category ID = 10

Results:
It is working fine

Search Data:
Category ID = 10, 20

Results: It is not working

// search in categories
if (checkedCategories != null && checkedCategories.Count > 0)
{
  foreach (int categoryID in checkedCategories)
  {
    Query queryEntity = new TermQuery(new Term("CategoryID", categoryID.ToString()));
    booleanQuery.Add(queryEntity, Occur.MUST);
  }
}
도움이 되었습니까?

해결책

I found the answer, it is into the following great article

http://searchhub.org/2011/12/28/why-not-and-or-and-not/

What I did to solve my problem is:

Search by Lucene_KsuDmsDesc =        A
Search by Lucene_EmployeeNO =        B
Search by Lucene_CreatedBy  =        C
Search by Lucene_CreatedDateTime  =  D
Search by Lucene_CategoryID  =       E

The formula is (A and B and C and D) and (E1 or E2 or .... En), where and = MUST and or = SHOULD

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top