{"id":"https://openalex.org/W4312691533","doi":"https://doi.org/10.1109/tse.2022.3218859","title":"DiffSearch: A Scalable and Precise Search Engine for Code Changes","display_name":"DiffSearch: A Scalable and Precise Search Engine for Code Changes","publication_year":2022,"publication_date":"2022-11-04","ids":{"openalex":"https://openalex.org/W4312691533","doi":"https://doi.org/10.1109/tse.2022.3218859"},"language":"en","primary_location":{"id":"doi:10.1109/tse.2022.3218859","is_oa":false,"landing_page_url":"https://doi.org/10.1109/tse.2022.3218859","pdf_url":null,"source":{"id":"https://openalex.org/S8351582","display_name":"IEEE Transactions on Software Engineering","issn_l":"0098-5589","issn":["0098-5589","1939-3520","2326-3881"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320439","host_organization_name":"IEEE Computer Society","host_organization_lineage":["https://openalex.org/P4310320439","https://openalex.org/P4310319808"],"host_organization_lineage_names":["IEEE Computer Society","Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Software Engineering","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5029745565","display_name":"Luca Di Grazia","orcid":"https://orcid.org/0000-0002-5306-8645"},"institutions":[{"id":"https://openalex.org/I100066346","display_name":"University of Stuttgart","ror":"https://ror.org/04vnq7t77","country_code":"DE","type":"education","lineage":["https://openalex.org/I100066346"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Luca Di Grazia","raw_affiliation_strings":["Department of Computer Science, University of Stuttgart, Stuttgart, Germany"],"raw_orcid":"https://orcid.org/0000-0002-5306-8645","affiliations":[{"raw_affiliation_string":"Department of Computer Science, University of Stuttgart, Stuttgart, Germany","institution_ids":["https://openalex.org/I100066346"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5024589079","display_name":"Paul Bredl","orcid":"https://orcid.org/0009-0007-2887-784X"},"institutions":[{"id":"https://openalex.org/I100066346","display_name":"University of Stuttgart","ror":"https://ror.org/04vnq7t77","country_code":"DE","type":"education","lineage":["https://openalex.org/I100066346"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Paul Bredl","raw_affiliation_strings":["Department of Computer Science, University of Stuttgart, Stuttgart, Germany"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Computer Science, University of Stuttgart, Stuttgart, Germany","institution_ids":["https://openalex.org/I100066346"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013438083","display_name":"Michael Pradel","orcid":"https://orcid.org/0000-0003-1623-498X"},"institutions":[{"id":"https://openalex.org/I100066346","display_name":"University of Stuttgart","ror":"https://ror.org/04vnq7t77","country_code":"DE","type":"education","lineage":["https://openalex.org/I100066346"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Michael Pradel","raw_affiliation_strings":["Department of Computer Science, University of Stuttgart, Stuttgart, Germany"],"raw_orcid":"https://orcid.org/0000-0003-1623-498X","affiliations":[{"raw_affiliation_string":"Department of Computer Science, University of Stuttgart, Stuttgart, Germany","institution_ids":["https://openalex.org/I100066346"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.912,"has_fulltext":false,"cited_by_count":6,"citation_normalized_percentile":{"value":0.89326102,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":"49","issue":"4","first_page":"2366","last_page":"2380"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":1.0,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":1.0,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.998199999332428,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12423","display_name":"Software Reliability and Analysis Research","score":0.9957000017166138,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8941067457199097},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6652971506118774},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6045849323272705},{"id":"https://openalex.org/keywords/javascript","display_name":"JavaScript","score":0.5716526508331299},{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.5586364269256592},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.536151647567749},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.4977448284626007},{"id":"https://openalex.org/keywords/web-search-query","display_name":"Web search query","score":0.4660773277282715},{"id":"https://openalex.org/keywords/redundant-code","display_name":"Redundant code","score":0.42308998107910156},{"id":"https://openalex.org/keywords/preprocessor","display_name":"Preprocessor","score":0.42216935753822327},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3235629200935364},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.3089599907398224},{"id":"https://openalex.org/keywords/database","display_name":"Database","score":0.30711403489112854},{"id":"https://openalex.org/keywords/information-retrieval","display_name":"Information retrieval","score":0.30095943808555603},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.24691742658615112},{"id":"https://openalex.org/keywords/search-engine","display_name":"Search engine","score":0.23347550630569458},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.14922857284545898}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8941067457199097},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6652971506118774},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6045849323272705},{"id":"https://openalex.org/C544833334","wikidata":"https://www.wikidata.org/wiki/Q2005","display_name":"JavaScript","level":2,"score":0.5716526508331299},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.5586364269256592},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.536151647567749},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.4977448284626007},{"id":"https://openalex.org/C164120249","wikidata":"https://www.wikidata.org/wiki/Q995982","display_name":"Web search query","level":3,"score":0.4660773277282715},{"id":"https://openalex.org/C151578736","wikidata":"https://www.wikidata.org/wiki/Q1251793","display_name":"Redundant code","level":4,"score":0.42308998107910156},{"id":"https://openalex.org/C34736171","wikidata":"https://www.wikidata.org/wiki/Q918333","display_name":"Preprocessor","level":2,"score":0.42216935753822327},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3235629200935364},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.3089599907398224},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.30711403489112854},{"id":"https://openalex.org/C23123220","wikidata":"https://www.wikidata.org/wiki/Q816826","display_name":"Information retrieval","level":1,"score":0.30095943808555603},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.24691742658615112},{"id":"https://openalex.org/C97854310","wikidata":"https://www.wikidata.org/wiki/Q19541","display_name":"Search engine","level":2,"score":0.23347550630569458},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.14922857284545898}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1109/tse.2022.3218859","is_oa":false,"landing_page_url":"https://doi.org/10.1109/tse.2022.3218859","pdf_url":null,"source":{"id":"https://openalex.org/S8351582","display_name":"IEEE Transactions on Software Engineering","issn_l":"0098-5589","issn":["0098-5589","1939-3520","2326-3881"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320439","host_organization_name":"IEEE Computer Society","host_organization_lineage":["https://openalex.org/P4310320439","https://openalex.org/P4310319808"],"host_organization_lineage_names":["IEEE Computer Society","Institute of Electrical and Electronics Engineers"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"IEEE Transactions on Software Engineering","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G8390793956","display_name":null,"funder_award_id":"851895","funder_id":"https://openalex.org/F4320334678","funder_display_name":"European Research Council"}],"funders":[{"id":"https://openalex.org/F4320320879","display_name":"Deutsche Forschungsgemeinschaft","ror":"https://ror.org/018mejw64"},{"id":"https://openalex.org/F4320334678","display_name":"European Research Council","ror":"https://ror.org/0472cxd90"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":71,"referenced_works":["https://openalex.org/W2006291142","https://openalex.org/W2027806980","https://openalex.org/W2039168567","https://openalex.org/W2057049321","https://openalex.org/W2062973095","https://openalex.org/W2065489029","https://openalex.org/W2080579313","https://openalex.org/W2100591395","https://openalex.org/W2104301886","https://openalex.org/W2116910575","https://openalex.org/W2124666592","https://openalex.org/W2128782367","https://openalex.org/W2134092629","https://openalex.org/W2138756793","https://openalex.org/W2149321161","https://openalex.org/W2149672479","https://openalex.org/W2150198410","https://openalex.org/W2150874999","https://openalex.org/W2153150125","https://openalex.org/W2165739648","https://openalex.org/W2400994325","https://openalex.org/W2515360277","https://openalex.org/W2548627465","https://openalex.org/W2612300213","https://openalex.org/W2619465136","https://openalex.org/W2620986014","https://openalex.org/W2739978563","https://openalex.org/W2750919941","https://openalex.org/W2794601162","https://openalex.org/W2795013376","https://openalex.org/W2805788202","https://openalex.org/W2806718802","https://openalex.org/W2808620986","https://openalex.org/W2888223970","https://openalex.org/W2898852138","https://openalex.org/W2902618648","https://openalex.org/W2954823997","https://openalex.org/W2955767826","https://openalex.org/W2955991060","https://openalex.org/W2956048495","https://openalex.org/W2962809971","https://openalex.org/W2964150020","https://openalex.org/W2968179027","https://openalex.org/W2979679630","https://openalex.org/W2998011150","https://openalex.org/W2998702515","https://openalex.org/W3012259356","https://openalex.org/W3032749142","https://openalex.org/W3033748891","https://openalex.org/W3082991350","https://openalex.org/W3102072454","https://openalex.org/W3109537811","https://openalex.org/W3121414853","https://openalex.org/W3138597995","https://openalex.org/W3161504508","https://openalex.org/W3175425298","https://openalex.org/W3196153378","https://openalex.org/W3204538577","https://openalex.org/W4230190751","https://openalex.org/W4231404931","https://openalex.org/W4256028358","https://openalex.org/W4256607842","https://openalex.org/W4288080276","https://openalex.org/W4301168982","https://openalex.org/W4303450757","https://openalex.org/W6673758803","https://openalex.org/W6741631869","https://openalex.org/W6745921525","https://openalex.org/W6754022011","https://openalex.org/W6775043690","https://openalex.org/W6910696474"],"related_works":["https://openalex.org/W116913286","https://openalex.org/W2240848044","https://openalex.org/W2763045826","https://openalex.org/W3162146186","https://openalex.org/W2356102990","https://openalex.org/W632311702","https://openalex.org/W4387674316","https://openalex.org/W3122369893","https://openalex.org/W2750654225","https://openalex.org/W1977905671"],"abstract_inverted_index":{"The":[0,72],"source":[1,21],"code":[2,17,22,39,45,61,119,153,177,200,221],"of":[3,14,16,26,43,66,100,205,242],"successful":[4],"projects":[5],"is":[6,74,104,235],"evolving":[7],"all":[8],"the":[9,70,88,116,139,157,190],"time,":[10],"resulting":[11],"in":[12,20,121,138],"hundreds":[13],"thousands":[15],"changes":[18,34,67,120,222],"stored":[19],"repositories.":[23],"This":[24,47],"wealth":[25],"data":[27],"can":[28,171],"be":[29,172],"useful,":[30],"e.g.,":[31],"to":[32,36,106,108,113,146,174,195,218],"find":[33,219],"similar":[35],"a":[37,51,56,60,64,83,122,129,162,169,175,203,226,239],"planned":[38],"change":[40,154],"or":[41],"examples":[42],"recurring":[44],"improvements.":[46],"paper":[48],"presents":[49],"DiffSearch,":[50],"search":[52,137,229,232],"engine":[53],"that,":[54],"given":[55,158],"query":[57,84,170],"that":[58,68,86,103,150,166,189],"describes":[59],"change,":[62],"returns":[63],"set":[65],"match":[69],"query.":[71,144],"approach":[73,117,191],"enabled":[75],"by":[76],"three":[77],"key":[78],"contributions.":[79],"First,":[80],"we":[81,160],"present":[82,161,180],"language":[85,91],"extends":[87],"underlying":[89],"programming":[90,110],"with":[92],"wildcards":[93],"and":[94,132,185,187,212,230,234],"placeholders,":[95],"providing":[96],"an":[97,135],"intuitive":[98],"way":[99],"formulating":[101],"queries":[102,196],"easy":[105],"adapt":[107],"different":[109],"languages.":[111],"Second,":[112],"ensure":[114],"scalability,":[115],"indexes":[118],"one-time":[123],"preprocessing":[124],"step,":[125],"mapping":[126],"them":[127],"into":[128],"feature":[130,140],"space,":[131],"then":[133],"performs":[134],"efficient":[136],"space":[141],"for":[142,182,207,210,214,237],"each":[143],"Third,":[145],"guarantee":[147],"precision,":[148],"i.e.,":[149],"any":[151],"returned":[152],"indeed":[155],"matches":[156],"query,":[159],"tree-based":[163],"matching":[164],"algorithm":[165],"checks":[167],"whether":[168],"expanded":[173],"concrete":[176],"change.":[178],"We":[179],"implementations":[181],"Java,":[183,208],"JavaScript,":[184,215],"Python,":[186,211],"show":[188],"responds":[192],"within":[193],"seconds":[194],"across":[197],"one":[198],"million":[199],"changes,":[201],"has":[202],"recall":[204],"80.7%":[206],"89.6%":[209],"90.4%":[213],"enables":[216],"users":[217],"relevant":[220],"more":[223],"effectively":[224],"than":[225],"regular":[227],"expression-based":[228],"GitHub's":[231],"feature,":[233],"helpful":[236],"gathering":[238],"large-scale":[240],"dataset":[241],"real-world":[243],"bug":[244],"fixes.":[245]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
