: 필드 ID, 연락처 ID, 등록 및 실행 및 ID에 대한 고유 키를 가진 문서와SOLR 6.6.2 그룹화 된 쿼리
SOLR 구름 모음.
동일한 ContactId를 가진 문서가 여러 개있을 수 있습니다.
각 연락처 문서에는 텍스트 줄을 포함하는 텍스트 필드 속성이 있습니다. 속성 필드는 ','로 구분하여 색인화되므로 예 : 속성 : 녹색 히트. 예를 들어
:
+----+-----------+--------------+
| ID | ContactId | Properties |
+----+-----------+--------------+
| 1 | C1 | Blue,Green |
| 2 | C1 | Blue,Yellow |
| 3 | C2 | Green,Yellow |
+----+-----------+--------------+
가 지금은 속성이이 쿼리는이 ContactID가의 모든 문서를 통해 일치 "녹색"과 "노란색"를 허용 한 모든 contactID는 찾을 필요가있다. 결과는 C1, C2가 될 것입니다.
결과를 그룹화하려고했지만 여전히 그룹화 된 결과에 대해 쿼리 할 수 없습니다.
group=true&group.field=ContactId&group.query=(Green AND Yellow)&q=(Green OR Yellow)
내가 다음에 아이디어와 AND 조건 녹색과 노란색의 group.field ContactID가와 나중에 group.query에 그룹화를보다 녹색 또는 노란색 중 하나가 모든 문서를 가져 오는 쿼리 (Q)이었다. 하지만 성공하지 못했습니다.
MYSQL에서 하나 그냥
group_concat(Properties) as grouped
을 할 것이며, 해당 문자열을 통해 같은 작업을 수행합니다
grouped LIKE '%Green%' AND grouped LIKE '%Yellow%'
가 어떻게이 SOLR 인덱스에서이 쿼리를 달성 할 수 있습니까?
금리 및없이 제안지금까지 시도 :
intersect(
search(w3, q=Properties:("Green" OR "Green" AND "Yellow"), fl="ContactId", sort="ContactId asc"),
search(w3, q=Properties:("Yellow" OR "Green" AND "Yellow"), fl="ContactId", sort="ContactId asc"),
on="ContactId")
을하지만 두 속성은 같은 문서 안에있는 경우 여전히 결과가 와서 : SOLR의 교차의 예에서 파생 된
intersect(
search(w3, q=Properties:("Green"), fl="ContactId", sort="ContactId asc"),
search(w3, q=Properties:("Yellow"), fl="ContactId", sort="ContactId asc"),
on="ContactId")
동일한 ContactId의 여러 문서로 각 문서가 분할되어있는 것은 아닙니다 (이 경우 C2 만 가능하지만 C1은 그렇지 않습니다).
기존 데이터 모델을 사용해야합니까? 그래서 당신을 위해 색인 시간 조인은 가능하지 않습니까? – Mysterion
아니요, 변경할 수 없습니다 – gantners