eland.DataFrame.es_match#

DataFrame.es_match(text: str, *, columns: Optional[Union[str, Sequence[str]]] = None, match_phrase: bool = False, must_not_match: bool = False, multi_match_type: Optional[str] = None, match_only_text_fields: bool = True, analyzer: Optional[str] = None, fuzziness: Optional[Union[int, str]] = None, **kwargs: Any) DataFrame#

使用 Elasticsearch matchmatch_phrasemulti_match 查询根据给定的参数和列过滤数据。

了解有关 Elasticsearch 中的全文查询 的更多信息

默认情况下,会查询 Elasticsearch 中所有类型为“text”的字段,否则可以通过 columns 参数指定特定列,或者使用 eland.Series.es_match() 过滤单个列。

所有其他关键字参数都将在匹配查询的主体中传递。

参数#

text: str

要搜索的文本字符串

columns: str, List[str], 可选

要搜索的列列表。默认为 Elasticsearch 中的所有“text”字段

match_phrase: bool, 默认值为 False

如果为 True,将使用 match_phrase 而不是 match 查询,这将考虑 text 参数的顺序。

must_not_match: bool, 默认值为 False

如果为 True,将对查询应用布尔 NOT (~)。查询将要求文本不匹配,而不是要求匹配。

multi_match_type: str, 可选

如果给出并针对多个列进行匹配,则将设置 multi_match.type 设置

match_only_text_fields: bool, 默认值为 True

如果为 True,如果查询任何非文本字段,此函数将引发错误,以防止未分析的字段无法正常工作。设置为 False 以忽略此预防性检查。

analyzer: str, 可选

指定用于匹配查询的分析器

fuzziness: int, str, 可选

指定匹配查询的模糊选项

返回值#

DataFrame

使用给定匹配查询过滤后的 eland.DataFrame

示例#

>>> df = ed.DataFrame("http://localhost:9200", "ecommerce")
>>> df.es_match("Men's", columns=["category"])
                                              category currency  ...   type     user
0                                     [Men's Clothing]      EUR  ...  order    eddie
4                  [Men's Clothing, Men's Accessories]      EUR  ...  order    eddie
6                                     [Men's Clothing]      EUR  ...  order   oliver
7     [Men's Clothing, Men's Accessories, Men's Shoes]      EUR  ...  order      abd
11                 [Men's Accessories, Men's Clothing]      EUR  ...  order    eddie
...                                                ...      ...  ...    ...      ...
4663                     [Men's Shoes, Men's Clothing]      EUR  ...  order    samir
4667                     [Men's Clothing, Men's Shoes]      EUR  ...  order   sultan
4671                                  [Men's Clothing]      EUR  ...  order      jim
4672                                  [Men's Clothing]      EUR  ...  order    yahya
4674             [Women's Accessories, Men's Clothing]      EUR  ...  order  jackson

[2310 rows x 45 columns]