equal
deleted
inserted
replaced
874 if _done is None: |
874 if _done is None: |
875 _done = set() |
875 _done = set() |
876 _done.add(self.eid) |
876 _done.add(self.eid) |
877 containers = tuple(self.e_schema.fulltext_containers()) |
877 containers = tuple(self.e_schema.fulltext_containers()) |
878 if containers: |
878 if containers: |
879 yielded = False |
|
880 for rschema, target in containers: |
879 for rschema, target in containers: |
881 if target == 'object': |
880 if target == 'object': |
882 targets = getattr(self, rschema.type) |
881 targets = getattr(self, rschema.type) |
883 else: |
882 else: |
884 targets = getattr(self, 'reverse_%s' % rschema) |
883 targets = getattr(self, 'reverse_%s' % rschema) |
886 if entity.eid in _done: |
885 if entity.eid in _done: |
887 continue |
886 continue |
888 for container in entity.fti_containers(_done): |
887 for container in entity.fti_containers(_done): |
889 yield container |
888 yield container |
890 yielded = True |
889 yielded = True |
891 if not yielded: |
|
892 yield self |
|
893 else: |
890 else: |
894 yield self |
891 yield self |
895 |
892 |
896 def get_words(self): |
893 def get_words(self): |
897 """used by the full text indexer to get words to index |
894 """used by the full text indexer to get words to index |
917 self.exception("can't add value of %s to text index for entity %s", |
914 self.exception("can't add value of %s to text index for entity %s", |
918 rschema, self.eid) |
915 rschema, self.eid) |
919 continue |
916 continue |
920 if value: |
917 if value: |
921 words += tokenize(value) |
918 words += tokenize(value) |
922 |
|
923 for rschema, role in self.e_schema.fulltext_relations(): |
919 for rschema, role in self.e_schema.fulltext_relations(): |
924 if role == 'subject': |
920 if role == 'subject': |
925 for entity in getattr(self, rschema.type): |
921 for entity in getattr(self, rschema.type): |
926 words += entity.get_words() |
922 words += entity.get_words() |
927 else: # if role == 'object': |
923 else: # if role == 'object': |