내 색인에 "연령대"라는 필드가있는 문서가 포함되어 있다고 가정 해보십시오. "연령"필드의 예 항목 : 나는 누구의 필드 사이의 연령대를 포함하는 모든 문서를 얻을 수 있도록Zend 여러 값을 가진 필드에서 Lucene 및 범위 검색
- 25
- 24, 28
- (25),
(31)가 어떻게이를 조회 할 20, 30? Zend Lucene을 사용하고 있습니다.
내 색인에 "연령대"라는 필드가있는 문서가 포함되어 있다고 가정 해보십시오. "연령"필드의 예 항목 : 나는 누구의 필드 사이의 연령대를 포함하는 모든 문서를 얻을 수 있도록Zend 여러 값을 가진 필드에서 Lucene 및 범위 검색
(31)가 어떻게이를 조회 할 20, 30? Zend Lucene을 사용하고 있습니다.
lmgtfy : -
$from = new Zend_Search_Lucene_Index_Term(20, 'ages');
$to = new Zend_Search_Lucene_Index_Term(30, 'ages');
$query = new Zend_Search_Lucene_Search_Query_Range(
$from, $to, true // inclusive
);
$hits = $index->find($query);
모두 루씬과 SOLR 지원은 다중 값.
귀하의 경우 데이터를 잘 정규화하지 않았습니다.
연령 필드를 다중 값으로 재 할당하려면
범위 쿼리는 다중 값의 값 중 하나와 일치해야합니다. 당신이 30-20 사이의 모든 값과 일치해야하는 경우
20,29 <-- matched
20,31 <-- matched
30,31 <-- does not matched
평균의
,
20,21,30 <-- matched
19,21,30 <-- not matched
당신은 다른 필드 (들)를 사용할 수 있습니다
,
같은 : -
age_20_30 : store 1 (when all ages are between 20 to 30), else 0
age_30_40 : store 1 (when all ages are between 30 to 40), else 0
... etc
그 후 age_20_30:1
에서 검색하도록 변경할 수 있습니다.
이 순수한 루씬 쿼리를 사용하는 경우 요약에서 작동하도록 루씬을 말하는 것은 '시대로, 간단
재미 "하나 이상의 값을 포함하는 필드? – StackOverflowNewbie
는 여러 연령대입니까? – ajreal
여전히 작동해야합니다 (적어도 제 인스턴스는 잘 작동합니다) – ajreal
결과와 같다 : [20 ~ 30]'가지고있는 "나이에도 불구하고 젠드 - 루씬이 작동 – ajreal