本文整理汇总了Python中haystack.utils.get_identifier方法的典型用法代码示例。如果您正苦于以下问题:Python utils.get_identifier方法的具体用法?Python utils.get_identifier怎么用?Python utils.get_identifier使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类haystack.utils
的用法示例。
在下文中一共展示了utils.get_identifier方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: remove
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def remove(self, obj_or_string, commit=True):
"""
Removes an object from the index.
:param obj_or_string:
:param commit:
"""
if not self.setup_complete:
try:
self.setup()
except elasticsearch.TransportError as e:
if not self.silently_fail:
raise
doc_id = get_identifier(obj_or_string)
self.log.error("Failed to remove document '%s' from Elasticsearch: %s", doc_id, e)
return
for language in self.languages:
# self.log.debug('removing {0} from index {1}'.format(obj_or_string, language))
self.index_name = self._index_name_for_language(language)
with translation.override(language):
super(ElasticsearchMultilingualSearchBackend, self).remove(obj_or_string,
commit=commit)
示例2: update
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def update(self, index, iterable, commit=True):
if not self.setup_complete:
self.setup()
self.index = self.index.refresh()
writer = AsyncWriter(self.index)
for obj in iterable:
try:
doc = index.full_prepare(obj)
except SkipDocument:
self.log.debug(u"Indexing for object `%s` skipped", obj)
else:
# Really make sure it's unicode, because Whoosh won't have it any
# other way.
for key in doc:
doc[key] = self._from_python(doc[key])
# Document boosts aren't supported in Whoosh 2.5.0+.
if 'boost' in doc:
del doc['boost']
try:
writer.update_document(**doc)
except Exception as e:
if not self.silently_fail:
raise
# We'll log the object identifier but won't include the actual object
# to avoid the possibility of that generating encoding errors while
# processing the log message:
self.log.error(u"%s while preparing object for update" % e.__class__.__name__, exc_info=True, extra={
"data": {
"index": index,
"object": get_identifier(obj)
}
})
if len(iterable) > 0:
# For now, commit no matter what, as we run into locking issues otherwise.
writer.commit()
示例3: remove
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def remove(self, obj_or_string, commit=True):
if not self.setup_complete:
self.setup()
self.index = self.index.refresh()
whoosh_id = get_identifier(obj_or_string)
try:
self.index.delete_by_query(q=self.parser.parse(u'%s:"%s"' % (ID, whoosh_id)))
except Exception as e:
if not self.silently_fail:
raise
self.log.error("Failed to remove document '%s' from Whoosh: %s", whoosh_id, e)
示例4: update
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def update(self, index, iterable, commit=True):
if not self.setup_complete:
self.setup()
self.index = self.index.refresh()
writer = AsyncWriter(self.index)
for obj in iterable:
try:
doc = index.full_prepare(obj)
except SkipDocument:
self.log.debug(u"Indexing for object `%s` skipped", obj)
else:
# Really make sure it's unicode, because Whoosh won't have it any
# other way.
for key in doc:
doc[key] = self._from_python(doc[key])
# Document boosts aren't supported in Whoosh 2.5.0+.
if 'boost' in doc:
del doc['boost']
try:
writer.update_document(**doc)
except Exception as e:
if not self.silently_fail:
raise
# We'll log the object identifier but won't include the actual object
# to avoid the possibility of that generating encoding errors while
# processing the log message:
self.log.error(u"%s while preparing object for update" % e.__class__.__name__,
exc_info=True, extra={"data": {"index": index,
"object": get_identifier(obj)}})
if len(iterable) > 0:
# For now, commit no matter what, as we run into locking issues otherwise.
writer.commit()
示例5: remove
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def remove(self, obj_or_string, commit=True):
if not self.setup_complete:
self.setup()
self.index = self.index.refresh()
whoosh_id = get_identifier(obj_or_string)
try:
self.index.delete_by_query(q=self.parser.parse(u'%s:"%s"' % (ID, whoosh_id)))
except Exception as e:
if not self.silently_fail:
raise
self.log.error("Failed to remove document '%s' from Whoosh: %s", whoosh_id, e, exc_info=True)
示例6: delete
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def delete(self, index_cls, using, instances):
ids = [get_identifier(instance) for instance in instances]
# Log the wallet_id to make it easy to search for the credentials when troubleshooting
# The record ids are not indexed so they are not searchable.
# wallet_ids = [instance.credential_id for instance in instances]
LOGGER.debug("Deleteing items from Solr queue/index; Class: %s, Using: %s", index_cls, using)
try:
self._queue.put((index_cls, using, ids, 1))
except Full:
LOGGER.error("Can't delete items from the Solr queue because it is full")
raise
示例7: delete
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def delete(self, index_cls, using, instances):
ids = [get_identifier(instance) for instance in instances]
# Log the wallet_id to make it easy to search for the credentials when troubleshooting
# The record ids are not indexed so they are not searchable.
wallet_ids = [instance.wallet_id for instance in instances]
LOGGER.debug("Deleteing items from Solr queue/index; Class: %s, Using: %s, Instances: %s", index_cls, using, wallet_ids)
try:
self._queue.put( (index_cls, using, ids, 1) )
except Full:
LOGGER.warning("Can't delete items from the Solr queue because it is full; %s", wallet_ids)
示例8: remove
# 需要导入模块: from haystack import utils [as 别名]
# 或者: from haystack.utils import get_identifier [as 别名]
def remove(self, obj_or_string, commit=True):
doc_id = get_identifier(obj_or_string)
# django-haystack default to using namespaced ids for objects like layers.layer.83 but the GeoNode SearchIndexes
# override the default ids with ResourceBase ids.
if isinstance(obj_or_string, ResourceBase):
doc_id = getattr(obj_or_string, 'id')
if not self.setup_complete:
try:
self.setup()
except elasticsearch.TransportError as e:
if not self.silently_fail:
raise
self.log.error(
"Failed to remove document '%s' from Elasticsearch: %s", doc_id, e)
return
try:
self.conn.delete(index=self.index_name,
doc_type='modelresult', id=doc_id, ignore=404)
if commit:
self.conn.indices.refresh(index=self.index_name)
except elasticsearch.TransportError as e:
if not self.silently_fail:
raise
self.log.error(
"Failed to remove document '%s' from Elasticsearch: %s", doc_id, e)